﻿using System;
using System.ComponentModel;
using System.Runtime.InteropServices;

namespace sandpit.Client.Enum
{
    #region 回调函数
    /// <summary>
    /// 监听报警事件回调函数
    /// </summary>
    /// <param name="iCommand">上传的消息类型</param>
    /// <param name="pAlarmer">报警设备信息</param>
    /// <param name="pAlarmInfo">报警信息</param>
    /// <param name="dwBufLen">报警信息缓存大小</param>
    /// <param name="pUser">用户数据</param>
    public delegate void MSGCallBack(int iCommand, ref NET_DVR_ALARMER pAlarmer, IntPtr pAlarmInfo, uint dwBufLen, IntPtr pUser);

    /// <summary>
    /// 设备报警事件回调函数
    /// </summary>
    /// <param name="iCommand">上传的消息类型</param>
    /// <param name="pAlarmer">报警设备信息</param>
    /// <param name="pAlarmInfo">报警信息</param>
    /// <param name="dwBufLen">报警信息缓存大小</param>
    /// <param name="pUser">用户数据</param>
    public delegate void MSGCallBack_V31(int iCommand, ref NET_DVR_ALARMER pAlarmer, IntPtr pAlarmInfo, uint dwBufLen, IntPtr pUser);

    /// <summary>
    /// 码流数据回调函数
    /// </summary>
    /// <param name="iRealHandle">当前的预览句柄</param>
    /// <param name="dwDataType">数据类型</param>
    /// <param name="pBuffer">存放数据的缓冲区指针</param>
    /// <param name="dwBufSize">缓冲区大小</param>
    /// <param name="pUser">用户数据</param>
    public delegate void REALDATACALLBACK(int iRealHandle, uint dwDataType, IntPtr pBuffer, uint dwBufSize, IntPtr pUser);

    #region 抓拍图片回调
    #endregion

    #endregion

    #region 结构体
    /// <summary>
    /// 设备参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_DVR_DEVICEINFO_V30
    {
        /// <summary>
        /// 序列号
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = SDKConst.SERIALNO_LEN)]
        public byte[] sSerialNumber;
        /// <summary>
        /// 模拟报警输入个数 
        /// </summary>
        public byte byAlarmInPortNum;
        /// <summary>
        /// 模拟报警输出个数 
        /// </summary>
        public byte byAlarmOutPortNum;
        /// <summary>
        /// 硬盘个数
        /// </summary>
        public byte byDiskNum;
        /// <summary>
        /// 设备类型
        /// </summary>
        /// <remarks>
        /// 如果byDVRType是0, 则接口中解析<see cref="wDevType"/>作为设备型号；
        /// 如果byDVRType非0, 则接口中byDVRType和<see cref="wDevType"/>值相等, 都是byDVRType
        /// 推荐使用<see cref="wDevType"/>作为设备类型
        /// </remarks>
        /// <value>
        /// 1: DVR
        /// 2: ATM DVR
        /// 3: DVS
        /// ......
        /// </value>
        public byte byDVRType;
        /// <summary>
        /// 设备模拟通道个数
        /// </summary>
        /// <remarks>
        /// 通道最大个数为<see cref="byIPChanNum"/> + <see cref="byHighDChanNum"/> * 256 
        /// </remarks>
        public byte byChanNum;
        /// <summary>
        /// 模拟通道的起始通道号
        /// </summary>
        /// <remarks>
        /// 从1开始数字通道的起始通道号见下面参数<see cref="byStartDChan"/>
        /// </remarks>
        public byte byStartChan;
        /// <summary>
        /// 设备语音对讲通道数 
        /// </summary>
        public byte byAudioChanNum;
        /// <summary>
        /// 设备最大数字通道个数
        /// </summary>
        /// <remarks>
        /// 低8位, 高8位见<see cref="byHighDChanNum"/>
        /// </remarks>
        public byte byIPChanNum;
        /// <summary>
        /// 零通道编码个数
        /// </summary>
        public byte byZeroChanNum;
        /// <summary>
        /// 主码流传输协议类型
        /// </summary>
        /// <remarks>
        /// 默认采用私有协议取流
        /// </remarks>
        /// <value>
        /// 0: private
        /// 1: rtsp
        /// 2: 同时支持private和rtsp
        /// </value>
        public byte byMainProto;
        /// <summary>
        /// 子码流传输协议类型
        /// </summary>
        /// <remarks>
        /// 默认采用私有协议取流
        /// </remarks>
        /// <value>
        /// 0: private
        /// 1: rtsp
        /// 2: 同时支持private和rtsp
        /// </value>
        public byte bySubProto;
        /// <summary>
        /// 能力
        /// </summary>
        /// <remarks>
        /// 位与结果为0表示不支持, 1表示支持
        /// </remarks>
        /// <value>
        /// 0x01: 表示是否支持智能搜索
        /// 0x02: 表示是否支持备份
        /// 0x04: 表示是否支持压缩参数能力获取
        /// 0x08: 表示是否支持双网卡
        /// 0x10: 表示支持远程SADP
        /// 0x20: 表示支持Raid卡功能
        /// 0x40: 表示支持IPSAN目录查找
        /// 0x80: 表示支持rtp over rtsp
        /// </value>
        public byte bySupport;
        /// <summary>
        /// 能力集扩充
        /// </summary>
        /// <remarks>
        /// 位与结果为0表示不支持, 1表示支持
        /// </remarks>
        /// <value>
        /// 0x01: 表示是否支持snmp v30
        /// 0x02: 表示是否支持区分回放和下载
        /// 0x04: 表示是否支持布防优先级	
        /// 0x08: 表示智能设备是否支持布防时间段扩展
        /// 0x10: 表示是否支持多磁盘数(超过33个)
        /// 0x20: 表示是否支持rtsp over http
        /// 0x80: 表示是否支持车牌新报警信息, 且还表示是否支持<see cref="NET_DVR_IPPARACFG_V40"/>配置
        /// </value>
        public byte bySupport1;
        /// <summary>
        /// 能力集扩充
        /// </summary>
        /// <remarks>
        /// 位与结果为0表示不支持, 1表示支持
        /// </remarks>
        /// <value>
        /// 0x01: 表示解码器是否支持通过URL取流解码
        /// 0x02: 表示是否支持FTPV40
        /// 0x04: 表示支持ANR
        /// 0x08: 表示是否支持ANR(断网录像)
        /// 0x20: 表示是否支持单独获取设备状态子项
        /// 0x40: 表示是否是码流加密设备
        /// </value>
        public byte bySupport2;
        /// <summary>
        /// 设备型号
        /// </summary>
        /// /// <value>
        /// <see cref="DVROrDevTypeEnum"/>
        /// </value>
        public uint wDevType;
        /// <summary>
        /// 能力集扩展
        /// </summary>
        /// <remarks>
        /// 位与结果为0表示不支持, 1表示支持
        /// </remarks>
        /// <value>
        /// 0x01: 表示是否支持多码流
        /// 0x04: 表示是否支持按组配置, 具体包含通道图像参数、报警输入参数、IP报警输入/输出接入参数、用户参数、设备工作状态、JPEG抓图、定时和时间抓图、硬盘盘组管理等
        /// 0x20: 表示是否支持通过DDNS域名解析取流
        /// </value>
        public byte bySupport3;
        /// <summary>
        /// 是否支持多码流
        /// </summary>
        /// <remarks>
        /// 位与结果为0表示不支持, 1表示支持
        /// </remarks>
        /// <value>
        /// 0x01: 表示是否支持码流3
        /// 0x02: 表示是否支持码流4
        /// 0x40: 表示是否支持主码流
        /// 0x80: 表示是否支持子码流
        /// </value>
        public byte byMultiStreamProto;
        /// <summary>
        /// 起始数字通道号
        /// </summary>
        /// <remarks>
        /// 0表示无数字通道, 比如DVR或IPC
        /// </remarks>
        public byte byStartDChan;
        /// <summary>
        /// 起始数字对讲通道号
        /// </summary>
        /// <remarks>
        /// 区别于模拟对讲通道号, 0表示无数字对讲通道
        /// </remarks>
        public byte byStartDTalkChan;
        /// <summary>
        /// 数字通道个数, 高8位
        /// </summary>
        public byte byHighDChanNum;
        /// <summary>
        /// 能力集扩展
        /// </summary>
        /// <remarks>
        /// 位与结果为0表示不支持, 1表示支持
        /// </remarks>
        /// <value>
        /// 0x01: 表示是否所有码流类型同时支持RTSP和私有协议
        /// 0x10: 表示是否支持域名方式挂载网络硬盘 
        /// </value>
        public byte bySupport4;
        /// <summary>
        /// 支持语种能力
        /// </summary>
        /// <remarks>
        /// 位与结果为0表示不支持, 1表示支持
        /// </remarks>
        /// <value>
        /// 0x00: 表示老设备, 不支持该字段
        /// 0x01: 表示是否支持中文
        /// 0x02: 表示是否支持英文
        /// </value>
        public byte byLanguageType;
        /// <summary>
        /// 音频输入通道数
        /// </summary>
        public byte byVoiceInChanNum;
        /// <summary>
        /// 音频输入起始通道号, 0表示无效
        /// </summary>
        public byte byStartVoiceInChanNo;
        /// <summary>
        /// 保留, 置为0
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
        public byte[] byRes3;
        /// <summary>
        /// 镜像通道个数, 录播主机中用于表示导播通道
        /// </summary>
        public byte byMirrorChanNum;
        /// <summary>
        /// 起始镜像通道号
        /// </summary>
        public uint wStartMirrorChanNo;
        /// <summary>
        /// 保留, 置为0
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
        public byte[] byRes2;
    }

    /// <summary>
    /// SDK配置结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_DVR_LOCAL_GENERAL_CFG
    {
        /// <summary>
        /// 异常回调类型
        /// </summary>
        /// <value>
        /// 0: 通过线程池异常回调
        /// 1: 直接异常回调给上层
        /// </value>
        public byte byExceptionCbDirectly;
        /// <summary>
        /// 回放和预览中保存到本地录像文件不切片
        /// </summary>
        /// <value>
        /// 0: 切片(默认)
        /// 1: 不切片
        /// </value>
        public byte byNotSplitRecordFile;
        /// <summary>
        /// 断网续传升级使能
        /// </summary>
        /// <value>
        /// 0: 关闭(默认)
        /// 1: 开启 
        /// </value>
        public byte byResumeUpgradeEnable;
        /// <summary>
        /// 控制JSON透传报警数据和图片是否分离
        /// </summary>
        /// <value>
        /// 0: 不分离
        /// 1: 分离(分离后走COMM_ISAPI_ALARM回调返回)
        /// </value>
        public byte byAlarmJsonPictureSeparate;
        /// <summary>
        /// 保留
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
        public byte[] byRes;
        /// <summary>
        /// 文件最大限制字节数 单位：Byte
        /// </summary>
        /// <remarks>
        /// 启用切片(<see cref="byNotSplitRecordFile"/>为0)时, 预览和回放保存的录像文件超过这个大小限制会自动切片, 即新建文件进行保存
        /// </remarks>
        public ulong i64FileSize;
        /// <summary>
        /// 断网续传重连超时时间, 单位毫秒 
        /// </summary>
        public uint dwResumeUpgradeTimeout;
        /// <summary>
        /// 保留
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 236)]
        public byte[] byRes1;
    }

    /// <summary>
    /// 预览参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_DVR_PREVIEWINFO
    {
        /// <summary>
        /// 通道号
        /// </summary>
        /// <remarks>
        /// 目前设备模拟通道号从1开始, 数字通道的起始通道号通过
        /// </remarks>
        public long lChannel;
        /// <summary>
        /// 码流类型
        /// </summary>
        /// <value>
        /// 0: 主码流
        /// 1: 子码流
        /// 2: 三码流
        /// 3: 虚拟码流
        /// </value>
        public uint dwStreamType;
        /// <summary>
        /// 连接方式
        /// </summary>
        /// <value>
        /// 0: TCP方式
        /// 1: UDP方式
        /// 2: 多播方式
        /// 3: RTP方式
        /// 4: RTP/RTSP
        /// 5: RTP/HTTP
        /// 6: HRUDP(可靠传输)
        /// 7: RTSP/HTTPS
        /// 8: NPQ
        /// </value>
        public uint dwLinkMode;
        /// <summary>
        /// 播放窗口的句柄, 为NULL表示不解码显示 
        /// </summary>
        public IntPtr hPlayWnd;
        /// <summary>
        /// 是否阻塞取流
        /// </summary>
        /// <remarks>
        /// 若设为不阻塞, 表示发起与设备的连接就认为连接成功, 如果发生码流接收失败、播放失败等情况以预览异常的方式通知上层在循环播放的时候可以减短停顿的时间, 与NET_DVR_RealPlay处理一致
        /// 若设为阻塞, 表示直到播放操作完成才返回成功与否, 网络异常时SDK内部connect失败将会有5s的超时才能够返回, 不适合于轮询取流操作
        /// </remarks>
        /// <value>
        /// 0: 非阻塞取流
        /// 1: 阻塞取流
        /// </value>
        public bool bBlocked;
        /// <summary>
        /// 是否启用录像回传
        /// </summary>
        /// <remarks>
        /// ANR断网补录功能, 客户端和设备之间网络异常恢复之后自动将前端数据同步过来, 需要设备支持
        /// </remarks>
        /// <value>
        /// 0: 不启用录像回传
        /// 1: 启用录像回传
        /// </value>
        public bool bPassbackRecord; //0-不启用录像回传,1启用录像回传
        /// <summary>
        /// 延迟预览模式
        /// </summary>
        /// <value>
        /// 0: 正常预览
        /// 1: 延迟预览
        /// </value>
        public byte byPreviewMode;
        /// <summary>
        /// 流ID
        /// </summary>
        /// <remarks>
        /// 为字母、数字和"_"的组合, lChannel为0xffffffff时启用此参数 
        /// </remarks>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = SDKConst.STREAM_ID_LEN)]
        public byte[] byStreamID;
        /// <summary>
        /// 应用层取流协议
        /// </summary>
        /// <remarks>
        /// 主子码流支持的取流协议通过登录返回结构参数NET_DVR_DEVICEINFO_V30的<see cref="NET_DVR_DEVICEINFO_V30.byMainProto"/>、<see cref="NET_DVR_DEVICEINFO_V30.bySubProto"/>值得知设备同时支持私协议和RTSP协议时, 该参数才有效, 默认使用私有协议, 可选RTSP协议
        /// </remarks>
        /// <value>
        /// 0: 私有协议
        /// 1: RTSP协议
        /// </value>
        public byte byProtoType;
        /// <summary>
        /// 保留, 置为0 
        /// </summary>
        public byte byRes1;
        /// <summary>
        /// 码流数据编解码类型
        /// </summary>
        /// <value>
        /// 0: 通用编码数据
        /// 1: 热成像探测器产生的原始数据(温度数据的加密信息, 通过去加密运算, 将原始数据算出真实的温度值)
        /// </value>
        public byte byVideoCodingType;
        /// <summary>
        /// 播放库播放缓冲区最大缓冲帧数
        /// </summary>
        /// <remarks>
        /// 取值范围: 1、6(默认, 自适应播放模式)、15, 置0时默认为1
        /// </remarks>
        public uint dwDisplayBufNum;
        /// <summary>
        /// NPQ模式
        /// </summary>
        /// <value>
        /// 0: 直连模式
        /// 1: 过流媒体模式
        /// </value>
        public byte byNPQMode;
        /// <summary>
        /// 是否接收metadata数据
        /// </summary>
        /// <remarks>
        /// 设备是否支持该功能通过GET /ISAPI/System/capabilities 中DeviceCap.SysCap.isSupportMetadata是否存在且为true
        /// </remarks>
        public byte byRecvMetaData;
        /// <summary>
        /// 数据类型
        /// </summary>
        /// <value>
        /// 0: 码流数据
        /// 1: 音频数据
        /// </value>
        public byte byDataType;
        /// <summary>
        /// 保留, 置为0 
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 213)]
        public byte[] byRes;
    }

    /// <summary>
    /// 设备报警信息结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_DVR_ALARMER
    {
        /// <summary>
        /// userid是否有效
        /// </summary>
        /// <value>
        /// 0: 无效
        /// 1: 有效
        /// </value>
        public byte byUserIDValid;
        /// <summary>
        /// 序列号是否有效
        /// </summary>
        /// <value>
        /// 0: 无效
        /// 1: 有效
        /// </value>
        public byte bySerialValid;
        /// <summary>
        /// 版本号是否有效
        /// </summary>
        /// <value>
        /// 0: 无效
        /// 1: 有效
        /// </value>
        public byte byVersionValid;
        /// <summary>
        /// 设备名字是否有效
        /// </summary>
        /// <value>
        /// 0: 无效
        /// 1: 有效
        /// </value>
        public byte byDeviceNameValid;
        /// <summary>
        /// MAC地址是否有效
        /// </summary>
        /// <value>
        /// 0: 无效
        /// 1: 有效
        /// </value>
        public byte byMacAddrValid;
        /// <summary>
        /// Login端口是否有效
        /// </summary>
        /// <value>
        /// 0: 无效
        /// 1: 有效
        /// </value>
        public byte byLinkPortValid;
        /// <summary>
        /// 设备IP是否有效
        /// </summary>
        /// <value>
        /// 0: 无效
        /// 1: 有效
        /// </value>
        public byte byDeviceIPValid;
        /// <summary>
        /// Socket IP是否有效
        /// </summary>
        /// <value>
        /// 0: 无效
        /// 1: 有效
        /// </value>
        public byte bySocketIPValid;
        /// <summary>
        /// NET_DVR_Login或NET_DVR_Login_V30返回值, 布防时有效
        /// </summary>
        public int iUserID;
        /// <summary>
        /// 序列号 
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = SDKConst.SERIALNO_LEN)]
        public byte[] sSerialNumber;
        /// <summary>
        /// 版本信息
        /// </summary>
        /// <remarks>
        /// V3.0以上版本支持的设备最高8位为主版本号, 次高8位为次版本号, 低16位为修复版本号；V3.0以下版本支持的设备高16位表示主版本, 低16位表示次版本
        /// </remarks>
        public uint dwDeviceVersion;
        /// <summary>
        /// 设备名称
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = SDKConst.NAME_LEN)]
        public byte[] sDeviceName;
        /// <summary>
        /// MAC地址
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = SDKConst.MACADDR_LEN)]
        public byte[] byMacAddr;
        /// <summary>
        /// 设备通讯端口
        /// </summary>
        public ushort wLinkPort;
        /// <summary>
        /// 设备IP地址
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
        public byte[] sDeviceIP;
        /// <summary>
        /// 报警主动上传时的Socket IP地址 
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
        public byte[] sSocketIP;
        /// <summary>
        /// IP协议
        /// </summary>
        /// <value>
        /// 0: IPV4
        /// 1: IPV6
        /// </value>
        public byte byIpProtocol;
        /// <summary>
        /// 保留, 置为0 
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
        public byte[] byRes1;
        /// <summary>
        /// JSON断网重传标志
        /// </summary>
        /// <value>
        /// 0: 不重传
        /// 1: 重传
        /// </value>
        public byte bJSONBroken;
        /// <summary>
        /// Socket端口
        /// </summary>
        public ushort wSocketPort;
        /// <summary>
        /// 保留, 置为0 
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
        public byte[] byRes2;
    }

    /// <summary>
    /// 车牌识别结果结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_ITS_PLATE_RESULT
    {
        /// <summary>
        /// 结构体大小
        /// </summary>
        public uint dwSize;
        /// <summary>
        /// 匹配序号
        /// </summary>
        /// <remarks>
        /// 由(车辆序号、数据类型、车道号)组成匹配码
        /// </remarks>
        public uint dwMatchNo;
        /// <summary>
        /// 图片组数量
        /// </summary>
        /// <remarks>
        /// 一辆过车多台相机抓拍的图片组的总数, 用于多相机数据匹配, 目前该参数值为1
        /// </remarks>
        public byte byGroupNum;
        /// <summary>
        /// 连拍的图片序号 
        /// </summary>
        /// <remarks>
        /// 接收到图片组数量后, 表示接收完成; 接收超时不足图片组数量时, 根据需要保留或删除
        /// </remarks>
        public byte byPicNo;
        /// <summary>
        /// 是否第二相机抓拍
        /// </summary>
        /// <remarks>
        /// 如远近景抓拍的远景相机, 或前后抓拍的后相机, 特殊项目中会用到
        /// </remarks>
        public byte bySecondCam;
        /// <summary>
        /// 闯红灯电警, 取第几张图作为特写图
        /// </summary>
        /// <remarks>
        /// 0xff-表示不取
        /// </remarks>
        public byte byFeaturePicNo;
        /// <summary>
        /// 触发车道号 
        /// </summary>
        public byte byDriveChan;
        /// <summary>
        /// 车辆类型
        /// </summary>
        /// <value>
        /// <see cref="VTR_RESULT "/>
        /// </value>
        public byte byVehicleType;
        /// <summary>
        /// 检测场景号
        /// </summary>
        /// <remarks>
        /// IPC为0 不支持
        /// </remarks>
        /// <value>
        /// 0: 无效
        /// 其他取值: [1,4]
        /// </value>
        public byte byDetSceneID;
        /// <summary>
        /// 车辆属性
        /// </summary>
        /// <remarks>
        /// 0表示无附加属性, 其他取值按位表示, bit0- 黄标车(类似年检的标志), bit1- 危险品车辆
        /// </remarks>
        /// <value>
        /// 0: 否
        /// 1: 是
        /// </value>
        public byte byVehicleAttribute;
        /// <summary>
        /// 违章类型
        /// </summary>
        /// <remarks>
        /// 采用国标定义(违章代码描述)。
        /// 为0时违法类型见<see cref="dwCustomIllegalType"/>, 都为0时表示正常卡口抓拍
        /// </remarks>
        public ushort wIllegalType;
        /// <summary>
        /// 违章子类型
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
        public byte[] byIllegalSubType;
        /// <summary>
        /// 违章时取第几张图片作为卡口图
        /// </summary>
        /// <remarks>
        /// 0xff-表示不取
        /// </remarks>
        public byte byPostPicNo;
        /// <summary>
        /// 通道号
        /// </summary>
        public byte byChanIndex;
        /// <summary>
        /// 限速上限(超速时有效)
        /// </summary>
        public ushort wSpeedLimit;
        /// <summary>
        /// <see cref="byChanIndexEx"/> * 256 + <see cref="byChanIndex"/>表示实际通道号
        /// </summary>
        public byte byChanIndexEx;
        /// <summary>
        /// 保留
        /// </summary>
        public byte byRes2;
        /// <summary>
        /// 车牌信息结构
        /// </summary>
        public NET_DVR_PLATE_INFO struPlateInfo;
        /// <summary>
        /// 车辆信息
        /// </summary>
        public NET_DVR_VEHICLE_INFO struVehicleInfo;
        /// <summary>
        /// 监测点编号
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 48)]
        public byte[] byMonitoringSiteID;
        /// <summary>
        /// 设备编号
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 48)]
        public byte[] byDeviceID;
        /// <summary>
        /// 监测方向
        /// </summary>
        /// <value>
        /// 1: 上行(反向)
        /// 2: 下行(正向)
        /// 3: 双向
        /// 4: 由东向西
        /// 5: 由南向北
        /// 6: 由西向东
        /// 7: 由北向南
        /// 8: 其它 
        /// </value>
        public byte byDir;
        /// <summary>
        /// 检测方式
        /// </summary>
        /// <remarks>
        /// 0: 车辆检测(不区分具体的车辆检测算法)
        /// 1: 地感触发
        /// 2: 视频触发
        /// 3: 多帧识别
        /// 4: 雷达触发
        /// 5: 混行检测
        /// </remarks>
        public byte byDetectType;
        /// <summary>
        /// 关联车道方向类型
        /// </summary>
        /// <remarks>
        /// 定义详见<see cref="ITC_RELA_LANE_DIRECTION_TYPE"/>, 与关联车道号对应, 确保车道唯一性
        /// </remarks>
        public byte byRelaLaneDirectionType;
        /// <summary>
        /// 车辆具体行驶的方向
        /// </summary>
        /// <remarks>
        /// 0: 从上往下
        /// 1: 从下往上
        /// </remarks>
        public byte byCarDirectionType;
        /// <summary>
        /// 违章类型定义(用户自定义) 
        /// </summary>
        /// <remarks>
        /// 当<see cref="wIllegalType"/>参数为0时, 使用该参数；若wIllegalType参数不为0时, 以wIllegalType参数为准, 该参数无效
        /// </remarks>
        public uint dwCustomIllegalType;
        /// <summary>
        /// 违法代码字符信息, <see cref="byIllegalFromatType"/>为1时有效(此时数字格式的国标违章代码参数<see cref="wIllegalType"/>、<see cref="dwCustomIllegalType"/>仍有效), 字符信息指针指向结构体<see cref="NET_ITS_ILLEGAL_INFO"/>
        /// </summary>
        public IntPtr pIllegalInfoBuf;
        /// <summary>
        /// 违章信息格式类型
        /// </summary>
        /// <value>
        /// 0: 数字格式
        /// 1: 字符格式
        /// </value>
        public byte byIllegalFromatType;
        /// <summary>
        /// 车窗是否有悬挂物
        /// </summary>
        /// <value>
        /// 0: 未知
        /// 1: 车窗有悬挂物
        /// 2: 车窗无悬挂物
        /// </value>
        public byte byPendant;
        /// <summary>
        /// 数据是否已分析 
        /// </summary>
        /// <value>
        /// 0: 数据未分析
        /// 1: 数据已分析
        /// </value>
        public byte byDataAnalysis;
        /// <summary>
        /// 是否黄标车
        /// </summary>
        /// <value>
        /// 0: 表示未知
        /// 1: 非黄标车
        /// 2: 黄标车
        /// </value>
        public byte byYellowLabelCar;
        /// <summary>
        /// 是否危险品车
        /// </summary>
        /// <value>
        /// 0: 表示未知
        /// 1: 非危险品车
        /// 2: 危险品车
        /// </value>
        public byte byDangerousVehicles;
        /// <summary>
        /// 主驾驶员是否系安全带
        /// </summary>
        /// <value>
        /// 0: 未知
        /// 1: 系安全带
        /// 2: 未系安全带
        /// </value>
        public byte byPilotSafebelt;
        /// <summary>
        /// 副驾驶员是否系安全带
        /// </summary>
        /// <value>
        /// 0: 未知
        /// 1: 系安全带
        /// 2: 未系安全带
        /// </value>
        public byte byCopilotSafebelt;
        /// <summary>
        /// 主驾驶是否打开遮阳板：
        /// </summary>
        /// <value>
        /// 0: 未知
        /// 1: 未打开遮阳板
        /// 2: 打开遮阳板
        /// </value>
        public byte byPilotSunVisor;
        /// <summary>
        /// 副驾驶是否打开遮阳板
        /// </summary>
        /// <value>
        /// 0: 未知
        /// 1: 未打开遮阳板
        /// 2: 打开遮阳板
        /// </value>
        public byte byCopilotSunVisor;
        /// <summary>
        /// 主驾驶员是否在打电话
        /// </summary>
        /// <value>
        /// 0: 未知
        /// 1: 未打电话
        /// 2: 打电话
        /// </value>
        public byte byPilotCall;
        /// <summary>
        /// 道闸控制类型
        /// </summary>
        /// <value>
        /// 0: 开闸
        /// 1: 未开闸(专用于历史数据中相机根据非授权名单匹配后是否开闸成功的标志)
        /// </value>
        public byte byBarrierGateCtrlType;
        /// <summary>
        /// 报警数据类型
        /// </summary>
        /// <value>
        /// 0: 实时数据
        /// 1: 历史数据
        /// </value>
        public byte byAlarmDataType;
        /// <summary>
        /// 端点时间(ms)
        /// </summary>
        /// <remarks>
        /// 抓拍第一张图片的时间
        /// </remarks>
        NET_DVR_TIME_V30 struSnapFirstPicTime;
        /// <summary>
        /// 违法持续时间(ms) = 抓拍最后一张图片的时间 - 抓拍第一张图片的时间
        /// </summary>
        public uint dwIllegalTime;
        /// <summary>
        /// 图片数量
        /// </summary>
        /// <remarks>
        /// 与byGroupNum不同, 代表本条信息附带的图片数量
        /// </remarks>
        public uint dwPicNum;
        /// <summary>
        /// 图片信息
        /// </summary>
        /// <remarks>
        /// 单张回调, 最多6张图, 由序号区分
        /// </remarks>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.Struct)]
        public NET_ITS_PICTURE_INFO[] struPicInfo;
    }

    /// <summary>
    /// 识别结果结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_DVR_PLATE_RESULT_V50
    {
        /// <summary>
        /// 结构体大小
        /// </summary>
        public uint dwSize;
        /// <summary>
        /// 匹配序号
        /// </summary>
        /// <remarks>
        /// 由车辆序号, 数据类型, 车道号组成匹配码
        /// </remarks>
        public uint dwMatchNo;
        /// <summary>
        /// 图片组数量
        /// </summary>
        /// <remarks>
        /// 一辆过车相机多次抓拍的数量, 代表一组图片的总数, 用于延时匹配数据
        /// </remarks>
        public byte byGroupNum;
        /// <summary>
        /// 连拍的图片序号
        /// </summary>
        /// <remarks>
        /// 接收到图片组数量后, 表示接收完成;
        /// 接收超时不足图片组数量时, 根据需要保留或删除
        /// </remarks>
        public byte byPicNo;
        /// <summary>
        /// 是否第二相机抓拍
        /// </summary>
        /// <remarks>
        /// 如远近景抓拍的远景相机, 或前后抓拍的后相机, 特殊项目中会用到
        /// </remarks>
        public byte bySecondCam;
        /// <summary>
        /// 闯红灯电警 
        /// </summary>
        /// <remarks>
        /// 取第几张图作为特写图, 0xff-表示不取
        /// </remarks>
        public byte byFeaturePicNo;
        /// <summary>
        /// 触发车道号
        /// </summary>
        public byte byDriveChan;
        /// <summary>
        /// 车辆类型
        /// </summary>
        /// <value>
        /// <see cref="VTR_RESULT"/>
        /// </value>
        public byte byVehicleType;
        /// <summary>
        /// 检测场景号[1,4], IPC默认是0
        /// </summary>
        public byte byDetSceneID;
        /// <summary>
        /// 车辆属性
        /// </summary>
        /// <remarks>
        /// 该节点已不再使用,使用下面的<see cref="byYellowLabelCar"/>和<see cref="byDangerousVehicles"/>判断是否黄标车和危险品车
        /// </remarks>
        public byte byVehicleAttribute;
        /// <summary>
        /// 违章类型采用国标定义
        /// </summary>
        public ushort wIllegalType;
        /// <summary>
        /// 违章子类型
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
        public byte[] byIllegalSubType;
        /// <summary>
        /// 违章时取第几张图片作为卡口图,0xff-表示不取
        /// </summary>
        public byte byPostPicNo;
        /// <summary>
        /// 通道号(保留)
        /// </summary>
        public byte byChanIndex;
        /// <summary>
        /// 限速上限(超速时有效)
        /// </summary>
        public ushort wSpeedLimit;
        /// <summary>
        /// <see cref="byChanIndexEx"/> * 256 + <see cref="byChanIndex"/> 表示真实通道号
        /// </summary>
        public byte byChanIndexEx;
        /// <summary>
        /// 车辆位置布防标志
        /// </summary>
        /// <remarks>
        /// 即通过PUT /ISAPI/Traffic/channels/<ID>/vehiclePositionControl?format=json触发
        /// </remarks>
        /// <value>
        /// 0: 普通车牌识别报警
        /// 1: 车辆位置布防触发报警
        /// </value>
        public byte byVehiclePositionControl;
        /// <summary>
        /// 车牌信息结构
        /// </summary>
        NET_DVR_PLATE_INFO struPlateInfo;
        /// <summary>
        /// 车辆信息
        /// </summary>
        NET_DVR_VEHICLE_INFO struVehicleInfo;
        /// <summary>
        /// 监测点编号
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 48)]
        public byte[] byMonitoringSiteID;
        /// <summary>
        /// 设备编号
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 48)]
        public byte[] byDeviceID;
        /// <summary>
        /// 监测方向
        /// </summary>
        /// <value>
        /// 1: 上行(反向)
        /// 2: 下行(正向)
        /// 3: 双向
        /// 4: 由东向西
        /// 5: 由南向北
        /// 6: 由西向东
        /// 7: 由北向南
        /// 8: 其它
        /// </value>
        public byte byDir;
        /// <summary>
        /// 检测方式
        /// </summary>
        /// <value>
        /// 1: 地感触发
        /// 2: 视频触发
        /// 3: 多帧识别
        /// 4: 雷达触发
        /// </value>
        public byte byDetectType;
        /// <summary>
        /// 关联车道方向类型
        /// </summary>
        /// <remarks>
        /// 参考<see cref="ITC_RELA_LANE_DIRECTION_TYPE"/> 该参数为车道方向参数, 与关联车道号对应, 确保车道唯一性 
        /// </remarks>
        public byte byRelaLaneDirectionType;
        /// <summary>
        /// 车辆具体行驶的方向
        /// </summary>
        /// <value>
        /// 0: 从上往下
        /// 1: 从下往上
        /// 2: 未知
        /// </value>
        public byte byCarDirectionType;
        /// <summary>
        /// 违章类型定义(用户自定义)
        /// </summary>
        /// <remarks>
        /// 为0~数字格式时, 为老的违章类型<see cref="wIllegalType"/>、<see cref="dwCustomIllegalType"/>参数生效, 赋值国标违法代码
        /// 为1~字符格式时, <see cref="pIllegalInfoBuf"/>参数生效老的违章类型<see cref="wIllegalType"/>、<see cref="dwCustomIllegalType"/>参数依然赋值国标违法代码
        /// </remarks>
        public uint dwCustomIllegalType;
        /// <summary>
        /// 违法代码字符信息结构体指针
        /// </summary>
        /// <remarks>
        /// 指向<see cref="NET_ITS_ILLEGAL_INFO"/>
        /// </remarks>
        public IntPtr pIllegalInfoBuf;
        /// <summary>
        /// 违章信息格式类型
        /// </summary>
        /// <remarks>
        /// 0~数字格式, 1~字符格式
        /// </remarks>
        public byte byIllegalFromatType;
        /// <value>
        /// 0: 未知
        /// 1: 车窗有悬挂物
        /// 2: 车窗无悬挂物
        /// </value>
        public byte byPendant;
        /// <value>
        /// 0: 数据未分析
        /// 1: 数据已分析
        /// </value>
        public byte byDataAnalysis;
        /// <value>
        /// 0: 未知
        /// 1: 非黄标车
        /// 2: 黄标车
        /// </value>
        public byte byYellowLabelCar;
        /// <value>
        /// 0: 未知
        /// 1: 非危险品车
        /// 2: 危险品车
        /// </value>
        public byte byDangerousVehicles;
        /// <summary>
        /// 主驾
        /// </summary>
        /// <value>
        /// 0: 未知
        /// 1: 系安全带
        /// 2: 不系安全带
        /// </value>
        public byte byPilotSafebelt;
        /// <summary>
        /// 副驾
        /// </summary>
        /// <value>
        /// 0: 未知
        /// 1: 系安全带
        /// 2: 不系安全带
        /// </value>
        public byte byCopilotSafebelt;
        /// <summary>
        /// 主驾
        /// </summary>
        /// <value>
        /// 0: 未知
        /// 1: 不打开遮阳板
        /// 2: 打开遮阳板
        /// </value>
        public byte byPilotSunVisor;
        /// <summary>
        /// 副驾
        /// </summary>
        /// <value>
        /// 0: 未知
        /// 1: 不打开遮阳板
        /// 2: 打开遮阳板
        /// </value>
        public byte byCopilotSunVisor;
        /// <summary>
        /// 主驾
        /// </summary>
        /// <value>
        /// 0: 未知
        /// 1: 未打电话
        /// 2: 打电话
        /// </value>
        public byte byPilotCall;
        /// <remarks>
        /// 专用于历史数据中相机根据名单匹配后, 是否开闸成功的标志
        /// </remarks>
        /// <value>
        /// 0: 开闸
        /// 1: 未开闸
        /// </value>
        public byte byBarrierGateCtrlType;
        /// <value>
        /// 0: 实时数据
        /// 1: 历史数据
        /// </value>
        public byte byAlarmDataType;
        /// <summary>
        /// 端点时间(ms)
        /// </summary>
        /// <remarks>
        /// 抓拍第一张图片的时间
        /// </remarks>
        NET_DVR_TIME_V30 struSnapFirstPicTime;
        /// <summary>
        /// 违法持续时间(ms) = 抓拍最后一张图片的时间 - 抓拍第一张图片的时间
        /// </summary>
        public uint dwIllegalTime;
        /// <summary>
        /// 图片数量
        /// </summary>
        /// <remarks>
        /// 与<see cref="picGroupNum"/>不同, 代表本条信息附带的图片数量, 图片信息由<see cref="struVehicleInfoEx"/>定义
        /// </remarks>
        public uint dwPicNum;
        /// <summary>
        /// 图片信息,单张回调, 最多6张图, 由序号区分
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
        public NET_ITS_PICTURE_INFO[] struPicInfo;
        /// <summary>
        /// 车辆称重
        /// </summary>
        public NET_DVR_VEHICLE_WEIGHT_RESULT struWeightResult;
        /// <summary>
        /// 预留
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
        public byte byRes;
    }

    /// <summary>
    /// 交通抓拍结果车牌信息结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_DVR_PLATE_INFO
    {
        /// <summary>
        /// 车牌类型
        /// </summary>
        /// <remarks>
        /// 取值详见枚举类型<see cref="VCA_PLATE_TYPE"/> 
        /// </remarks>
        public byte byPlateType;
        /// <summary>
        /// 车牌颜色
        /// </summary>
        /// <remarks>
        /// 取值详见枚举类型<see cref="VCA_PLATE_COLOR"/> 
        /// </remarks>
        public byte byColor;
        /// <summary>
        /// 车牌亮度
        /// </summary>
        public byte byBright;
        /// <summary>
        /// 车牌字符个数
        /// </summary>
        public byte byLicenseLen;
        /// <summary>
        /// 整个车牌的置信度
        /// </summary>
        /// <remarks>
        /// 取值范围: 0~100
        /// </remarks>
        public byte byEntireBelieve;
        /// <summary>
        /// 区域索引值
        /// </summary>
        /// <value>
        /// 0: 保留
        /// 1: 欧洲(Europe Region)
        /// 2: 俄罗斯(Russian Region)
        /// 3: 欧洲&俄罗斯(EU&CIS)
        /// 0xff: 所有
        /// </value>
        public byte byRegion;
        /// <summary>
        /// 国家和地区索引值
        /// </summary>
        /// <remarks>
        /// 取值定义详见<see cref="COUNTRY_INDEX"/>, 不支持0xff(全部)
        /// </remarks>
        public byte byCountry;
        /// <summary>
        /// 区域(省份), 各国家和地区内部区域枚举, 阿联酋参照<see cref="EMI_AREA"/>
        /// </summary>
        public byte byArea;
        /// <summary>
        /// 车牌尺寸
        /// </summary>
        /// <value>
        /// 0: 未知
        /// 1: long
        /// 2: short(中东车牌使用) 
        /// </value>
        public byte byPlateSize;
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 15)]
        public byte[] byRes;
        /// <summary>
        /// 车牌附加信息
        /// </summary>
        /// <remarks>
        /// 即中东车牌中车牌号码旁边的小字信息(目前只有中东地区支持) 
        /// </remarks>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = SDKConst.MAX_CATEGORY_LEN)]
        public byte[] sPlateCategory;
        /// <summary>
        /// XML报警信息长度
        /// </summary>
        public uint dwXmlLen;
        /// <summary>
        /// XML报警信息指针, 对应内容为<see cref="EventNotificationAlert"/> 
        /// </summary>
        public IntPtr pXmlBuf;
        /// <summary>
        /// 车牌位置
        /// </summary>
        public NET_VCA_RECT struPlateRect;
        /// <summary>
        /// 车牌号码
        /// </summary>
        /// <value>
        /// 中东车牌需求把小字也纳入车牌号码, 小字和车牌号中间用空格分隔
        /// </value>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = SDKConst.MAX_LICENSE_LEN)]
        public byte[] sLicense;
        /// <summary>
        /// 各个识别字符的置信度
        /// </summary>
        /// <remarks>
        /// 如检测到车牌"浙A12345", 置信度为20,30,40,50,60,70, 则表示"浙"字正确的可能性是20%, "A"字的正确的可能性是30%
        /// </remarks>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = SDKConst.MAX_LICENSE_LEN)]
        public byte[] byBelieve;
    }

    /// <summary>
    /// 区域框参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_RECT
    {
        /// <summary>
        /// 边界框左上角点的X轴坐标
        /// </summary>
        /// <remarks>
        /// 取值范围[0.000, 1]
        /// </remarks>
        public float fX;
        /// <summary>
        /// 边界框左上角点的Y轴坐标
        /// </summary>
        /// <remarks>
        /// 取值范围[0.000, 1]
        /// </remarks>
        public float fY;
        /// <summary>
        /// 边界框左上角点的Y轴坐标
        /// </summary>
        /// <remarks>
        /// 取值范围[0.000, 1]
        /// </remarks>
        public float fWidth;
        /// <summary>
        /// 边界框的高度
        /// </summary>
        /// <remarks>
        /// 取值范围[0.000, 1]
        /// </remarks>
        public float fHeight;
    }

    /// <summary>
    /// 车辆信息参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_DVR_VEHICLE_INFO
    {
        /// <summary>
        /// 车辆序号 
        /// </summary>
        public uint dwIndex;
        /// <summary>
        /// 车辆类型
        /// </summary>
        /// <value>
        /// 0: 其他车辆
        /// 1: 小型车
        /// 2: 大型车
        /// 3: 行人触发
        /// 4: 二轮车触发
        /// 5: 三轮车触发
        /// 6: 机动车触发
        /// </value>
        public byte byVehicleType;
        /// <summary>
        /// 车身颜色深浅
        /// </summary>
        /// <value>
        /// 0: 深色
        /// 1: 浅色
        /// </value>
        public byte byColorDepth;
        /// <summary>
        /// 车身颜色
        /// </summary>
        /// <value>
        /// 0: 其他色
        /// 1: 白色
        /// 2: 银色
        /// 3: 灰色
        /// 4: 黑色
        /// 5: 红色
        /// 6: 深蓝
        /// 7: 蓝色
        /// 8: 黄色
        /// 9: 绿色
        /// 10: 棕色
        /// 11: 粉色
        /// 12: 紫色
        /// 13: 深灰
        /// 14: 青色
        /// 0xff: 未进行车身颜色识别
        /// </value>
        public byte byColor;
        /// <summary>
        /// 雷达状态
        /// </summary>
        /// <value>
        /// 0: 雷达正常
        /// 1: 雷达故障
        /// 2: 雷达一直发送某一个相同速度值
        /// 3: 雷达送出数据为0
        /// 4: 雷达送出的数据过大或过小
        /// </value>
        public byte byRadarState;
        /// <summary>
        /// 车辆速度
        /// </summary>
        /// <remarks>
        /// 单位km/h
        /// </remarks>
        public ushort wSpeed;
        /// <summary>
        /// 车身长度
        /// </summary>
        public ushort wLength;
        /// <summary>
        /// 违法类型
        /// </summary>
        /// <remarks>
        /// 对于ITS终端服务器, 该参数无效, 违法类型通过<see cref="NET_ITS_PLATE_RESULT.wIllegalType"/>进行判断
        /// </remarks>
        /// <value>
        /// 0: 正常
        /// 1: 低速
        /// 2: 超速
        /// 3: 逆行
        /// 4: 闯红灯
        /// 5: 压车道线
        /// 6: 不按导向
        /// 7: 路口滞留
        /// 8: 机占非
        /// 9: 违法变道
        /// 10: 机动车违反规定使用专用车道
        /// 11: 黄牌车禁限
        /// 12: 路口停车
        /// 13: 绿灯停车
        /// 14: 未礼让行人
        /// 15: 违章停车
        /// 16: 违章掉头
        /// 17: 占用应急车道
        /// 18: 禁右
        /// 19: 禁左
        /// 20: 压黄线
        /// 21: 未系安全带
        /// 22: 行人闯红灯
        /// 23: 加塞
        /// 24: 违法使用远光灯
        /// 25: 驾驶时拨打接听手持电话
        /// 26: 左转不让直行
        /// 27: 右转不让左转
        /// 28: 掉头不让直行
        /// 29: 大弯小转
        /// 30: 闯绿灯
        /// 31: 未带头盔
        /// 32: 非机动车载人
        /// 33: 非机动车占用机动车道
        /// 34: 非机动车打伞棚
        /// 35: 黑烟车,36: 鸣笛
        /// 37: 压线停车
        /// 38: 跨位停车
        /// 39: 压线且跨位停车
        /// 40: 不让右方道路来车先行
        /// 41: 进入环形路口未让已在路口内的机动车先行
        /// 42: 机动车从匝道进入主路未让行
        /// 43: 大车占道
        /// 44: 炸街
        /// 45: 吸烟
        /// </value>
        public byte byIllegalType;
        /// <summary>
        /// 车辆主品牌
        /// </summary>
        public byte byVehicleLogoRecog;
        /// <summary>
        /// 车辆子品牌
        /// </summary>
        public byte byVehicleSubLogoRecog;
        /// <summary>
        /// 车辆子品牌年款
        /// </summary>
        public byte byVehicleModel;
        /// <summary>
        /// 自定义信息
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
        public byte[] byCustomInfo;
        /// <summary>
        /// 车辆主品牌(该字段兼容byVehicleLogoRecog) 
        /// </summary>
        public ushort wVehicleLogoRecog;
        /// <summary>
        /// 是否停车
        /// </summary>
        /// <value>
        /// 0: 无效
        /// 1: 停车
        /// 2: 未停车
        /// </value>
        public byte byIsParking;
        /// <summary>
        /// 保留字节
        /// </summary>
        public byte byRes;
        /// <summary>
        /// 停车时间
        /// </summary>
        /// <remarks>
        /// 单位: s
        /// </remarks>
        public uint dwParkingTime;
        /// <summary>
        /// byIllegalType置信度, 1-100 
        /// </summary>
        public byte byBelieve;
        /// <summary>
        /// 当前作业人数 
        /// </summary>
        public byte byCurrentWorkerNumber;
        /// <summary>
        /// 当前货物装载率
        /// </summary>
        /// <value>
        /// 0: 空
        /// 1: 少
        /// 2: 中
        /// 3: 多
        /// 4: 满
        /// </value>
        public byte byCurrentGoodsLoadingRate;
        /// <summary>
        /// 车门状态
        /// </summary>
        /// <value>
        /// 0: 车门关闭
        /// 1: 车门开启
        /// </value>
        public byte byDoorsStatus;
        /// <summary>
        /// 保留
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
        public byte[] byRes3;
    }

    /// <summary>
    /// 时间参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_DVR_TIME_V30
    {
        /// <summary>
        /// 年
        /// </summary>
        public ushort wYear;
        /// <summary>
        /// 月
        /// </summary>
        public byte byMonth;
        /// <summary>
        /// 日
        /// </summary>
        public byte byDay;
        /// <summary>
        /// 时
        /// </summary>
        public byte byHour;
        /// <summary>
        /// 分
        /// </summary>
        public byte byMinute;
        /// <summary>
        /// 秒
        /// </summary>
        public byte bySecond;
        /// <summary>
        /// 是否是8601的时间格式, 即时差字段是否有效
        /// </summary>
        /// <value>
        /// 0: 时差无效, 年月日时分秒为设备本地时间
        /// 1: 时差有效
        /// </value>
        public byte byISO8601;
        /// <summary>
        /// 毫秒
        /// </summary>
        public ushort wMilliSec;
        /// <summary>
        /// 与UTC的时差(小时), -12 ... +14, +表示东区
        /// </summary>
        /// <remarks>
        /// byISO8601为1时有效
        /// </remarks>
        public byte cTimeDifferenceH;
        /// <summary>
        /// 与UTC的时差(分钟), -30, 30, 45, +表示东区
        /// </summary>
        /// <remarks>
        /// byISO8601为1时有效
        /// </remarks>
        public byte cTimeDifferenceM;
    }

    /// <summary>
    /// 抓拍图片信息结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_ITS_PICTURE_INFO
    {
        /// <summary>
        /// 媒体数据长度
        /// </summary>
        public uint dwDataLen;
        /// <summary>
        /// 数据类型
        /// </summary>
        /// <value>
        /// 0: 车牌图
        /// 1: 场景图
        /// 2: 合成图
        /// 3: 特写图
        /// 4: 二值图
        /// 5: 码流
        /// 6: 人脸子图(主驾驶), 
        /// 7: 人脸子图(副驾驶)
        /// 8: 非机动车
        /// 9: 行人
        /// 10: 称重原始裸数据
        /// 11: 目标图
        /// 12: 主驾驶室图
        /// 13: 副驾驶室图
        /// 14: 人脸图抠小图
        /// </value>
        public byte byType;
        /// <summary>
        /// 数据上传方式
        /// </summary>
        /// <value>
        /// 0: 数据直接上传
        /// 1: 云存储服务器URL(3.7Ver)原先的图片数据变成URL数据, 图片长度变成URL长度
        /// </value>
        public byte byDataType;
        /// <summary>
        /// 特写图类型
        /// </summary>
        /// <value>
        /// 0: 保留
        /// 1: 非机动车
        /// 2: 行人
        /// </value>
        public byte byCloseUpType;
        /// <summary>
        /// 图片背向识别
        /// </summary>
        /// <value>
        /// 0: 正向车牌识别
        /// 1: 背向识别(尾牌识别)
        /// </value>
        public byte byPicRecogMode;
        /// <summary>
        /// 经过的红灯时间
        /// </summary>
        /// <remarks>
        /// 单位: s 
        /// </remarks>
        public uint dwRedLightTime;
        /// <summary>
        /// 绝对时间点: yyyymmddhhmmssxxx, e.g.20090810235959999, 最后三位为毫秒数
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
        public byte[] byAbsTime;
        /// <summary>
        /// 当byType为1-场景图时, 该参数表示车牌位置, 用户可根据位置自己截取车牌特写图； 
        /// 当byType为8-非机动车, 9-行人时, 该参数表示人体坐标
        /// </summary>
        public NET_VCA_RECT struPlateRect;
        /// <summary>
        /// 牌识区域坐标, 当图片类型为12-主驾驶室图13-副驾驶室图是, 该坐标为驾驶员坐标
        /// </summary>
        /// <remarks>
        /// 参数中的边界宽fWidth和高fHeight若为0, fX和fY不为0, 则(fX,fY)表示牌识的中心点坐标
        /// </remarks>
        public NET_VCA_RECT struPlateRecgRect;
        /// <summary>
        /// 保存数据的缓冲区
        /// </summary>
        public IntPtr pBuffer;
        /// <summary>
        /// UTC时间
        /// </summary>
        public uint dwUTCTime;
        /// <summary>
        /// 兼容能力字段, 按位表示
        /// </summary>
        /// <remarks>
        /// 表示<see cref="dwUTCTime"/>字段是否有效 
        /// </remarks>
        /// <value>
        /// 0: 无效
        /// 1: 有效
        /// </value>
        public byte byCompatibleAblity;
        /// <summary>
        /// 时差字段是否有效
        /// </summary>
        /// <value>
        /// 0: 时差无效
        /// 1: 时差有效
        /// </value>
        public byte byTimeDiffFlag;
        /// <summary>
        /// 与UTC的时差(小时), -12 ... +14, +表示东区
        /// </summary>
        /// <remarks>
        /// byISO8601为1时有效
        /// </remarks>
        public byte cTimeDifferenceH;
        /// <summary>
        /// /// <summary>
        /// 与UTC的时差(分钟), -30, 30, 45, +表示东区
        /// </summary>
        /// <remarks>
        /// byISO8601为1时有效
        /// </remarks>
        /// </summary>
        public byte cTimeDifferenceM;
        /// <summary>
        /// 保留
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
        public byte[] byRes2;
    }

    /// <summary>
    /// 车辆二次识别任务提交结果信息结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_DVR_VEHICLE_WEIGHT_RESULT
    {
        /// <summary>
        /// 是否超限
        /// </summary>
        public byte byIsOverWeight;
        /// <summary>
        /// 轴数
        /// </summary>
        public byte byAxleNum;
        /// <summary>
        /// 参考<see cref="TRUCK_AXLE_MODEL"/>,可以根据类型解析出轴的个数
        /// </summary>
        public ushort wAxleModel;
        /// <summary>
        /// 超限重量(吨)
        /// </summary>
        /// <remarks>
        /// 实际值扩大1000倍传输(实际值精确到小数点后三位)
        /// </remarks>
        public float fOverWeight;
        /// <summary>
        /// 车身重量(吨)
        /// </summary>
        /// <remarks>
        /// 实际值扩大1000倍传输(实际值精确到小数点后三位)
        /// </remarks>
        public float fWeight;
        /// <summary>
        /// 限制重量(吨)
        /// </summary>
        /// <remarks>
        /// 实际值扩大1000倍传输(实际值精确到小数点后三位)
        /// </remarks>
        public float fLimitWeight;
        /// <summary>
        /// 轴距(米)
        /// </summary>
        /// <remarks>
        /// 实际值扩大100倍传输(实际值精确到小数点后两位)
        /// </remarks>
        public float fAxleLen;
        /// <summary>
        /// 设备描述信息
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = SDKConst.MAX_DEVDESC_LEN)]
        public char[] sDevDescInfo;
        /// <summary>
        /// 车轴重量
        /// </summary>
        /// <remarks>
        /// 单位千克(kg)
        /// 第i个元素表示第i个轴重 
        /// </remarks>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = SDKConst.MAX_TRUCK_AXLE_NUM)]
        public ushort[] wAxleWeight;
        /// <summary>
        /// 车轴间距
        /// </summary>
        /// <remarks>
        /// 单位毫米(mm)
        /// 第i个元素表示第i轴和第i+1轴的间距
        /// </remarks>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = SDKConst.MAX_TRUCK_AXLE_NUM)]
        public ushort[] wAxleDistance;
        /// <summary>
        /// 车长 
        /// </summary>
        /// <remarks>
        /// 单位cm
        /// </remarks>
        public uint dwLength;
        /// <summary>
        /// 车宽
        /// </summary>
        /// <remarks>
        /// 单位cm
        /// </remarks>
        public uint dwWidth;
        /// <summary>
        /// 车高
        /// </summary>
        /// <remarks>
        /// 单位cm
        /// </remarks>
        public uint dwHeight;
        /// <summary>
        /// 收费公路车型 
        /// </summary>
        /// <value>
        /// <see cref="TOOLWAY_VEHICLE_TYPE"/>
        /// </value>
        public byte byTollwayVehicleType;
        /// <summary>
        /// 预留
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 11)]
        public byte[] byRes2;
    }

    /// <summary>
    /// 上传的报警信息结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_DVR_ALARMINFO_V30
    {
        /// <summary>
        /// 报警类型
        /// </summary>
        /// <value>
        /// 0: 信号量报警
        /// 1: 硬盘满
        /// 2: 信号丢失
        /// 3: 移动侦测
        /// 4: 硬盘未格式化
        /// 5: 读写硬盘出错
        /// 6: 遮挡报警
        /// 7: 制式不匹配
        /// 8: 非法访问
        /// 9: 视频信号异常
        /// 10: 录像/抓图异常
        /// 11: 智能场景变化
        /// 12: 阵列异常
        /// 13: 前端/录像分辨率不匹配
        /// 15: 智能侦测
        /// 16: POE供电异常
        /// 17: 闪光灯异常
        /// 18: 磁盘满负荷异常报警
        /// 19: 音频丢失
        /// 23: 脉冲报警
        /// 24: 人脸库硬盘异常
        /// 25: 人脸库变更
        /// 26: 人脸库图片变更
        /// </value>
        public uint dwAlarmType;
        /// <summary>
        /// 报警输入端口
        /// </summary>
        /// <remarks>
        /// 当报警类型为0、2、3时有效
        /// </remarks>
        public uint dwAlarmInputNumber;
        /// <summary>
        /// 触发的报警输出端口
        /// </summary>
        /// <remarks>
        /// 当报警类型为信号量报警时, 值为1表示该报警端口输出
        /// </remarks>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = SDKConst.MAX_ALARMOUT_V30, ArraySubType = UnmanagedType.U4)]
        public byte[] dwAlarmOutputNumber;
        /// <summary>
        /// 触发的录像通道
        /// </summary>
        /// <remarks>
        /// 当报警类型为信号量报警时, 值为1表示该通道录像
        /// </remarks>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = SDKConst.MAX_CHANNUM_V30, ArraySubType = UnmanagedType.U4)]
        public byte[] dwAlarmRelateChannel;
        /// <summary>
        /// 发生报警的通道
        /// </summary>
        /// <remarks>
        /// 当报警类型为2、3、6、9、10、11、13、15、16时有效
        /// </remarks>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = SDKConst.MAX_CHANNUM_V30, ArraySubType = UnmanagedType.U4)]
        public byte[] dwChannel;
        /// <summary>
        /// 发生报警的硬盘
        /// </summary>
        /// <remarks>
        /// 当报警类型为1, 4, 5时有效
        /// </remarks>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = SDKConst.MAX_DISKNUM_V30, ArraySubType = UnmanagedType.U4)]
        public byte[] dwDiskNumber;
    }

    /// <summary>
    /// 报警布防参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_DVR_SETUPALARM_PARAM
    {
        /// <summary>
        /// 结构体大小 
        /// </summary>
        public uint dwSize;
        /// <summary>
        /// 布防优先级
        /// </summary>
        /// <value>
        /// 0: 一等级(高)
        /// 1: 二等级(中)
        /// 2: 三等级(低)
        /// </value>
        public byte byLevel;
        /// <summary>
        /// 智能交通报警信息上传类型
        /// </summary>
        /// <value>
        /// 0: 老报警信息(<see cref="NET_DVR_PLATE_RESULT"/>)
        /// 1: 新报警信息(<see cref="NET_ITS_PLATE_RESULT"/>) 
        /// </value>
        public byte byAlarmInfoType;
        /// <value>
        /// 0: 移动侦测、视频丢失、遮挡、IO信号量等报警信息以普通方式上传(报警类型：<see cref="COMM_ALARM_V30"/>,报警信息结构体：<see cref="NET_DVR_ALARMINFO_V30"/>)
        /// 1: 报警信息以数据可变长方式上传(报警类型：<see cref="COMM_ALARM_V40"/>,报警信息结构体：<see cref="NET_DVR_ALARMINFO_V40"/>,设备若不支持则仍以普通方式上传)
        /// </value>
        public byte byRetAlarmTypeV40;
        /// <summary>
        /// CVR上传报警信息类型(仅对接CVR时有效)
        /// </summary>
        /// <value>
        /// 0: COMM_ALARM_DEVICE(对应报警信息结构体：<see cref="NET_DVR_ALARMINFO_DEV"/>)
        /// 1: COMM_ALARM_DEVICE_V40(对应报警信息结构体：<see cref="NET_DVR_ALARMINFO_DEV_V40"/>)
        /// </value>
        public byte byRetDevInfoVersion;
        /// <summary>
        /// VQD报警上传类型(仅对接VQD诊断功能的设备有效)
        /// </summary>
        /// <value>
        /// 0: COMM_ALARM_VQD(对应报警信息结构体：<see cref="NET_DVR_VQD_DIAGNOSE_INFO"/>)
        /// 1: COMM_ALARM_VQD_EX(对应报警信息结构体：<see cref="NET_DVR_VQD_ALARM"/>,包含前端设备信息和抓拍图片)
        /// </value>
        public byte byRetVQDAlarmType;
        /// <summary>
        /// 人脸报警信息类型
        /// </summary>
        /// <value>
        /// 0: 人脸抓拍报警(报警类型：<see cref="COMM_UPLOAD_FACESNAP_RESULT"/>,<see cref="NET_VCA_FACESNAP_RESULT"/>) 
        /// 1: 人脸侦测报警(报警类型：<see cref="COMM_ALARM_FACE_DETECTION"/>,<see cref="NET_DVR_FACE_DETECTION"/>)
        /// </value>
        public byte byFaceAlarmDetection;
        /// <summary>
        /// 按位表示,每一位取值表示不同的能力
        /// bit0: 表示二级布防是否上传图片,值：0:上传,1:不上传
        /// Bit1: 表示是否启用断网重传数据确认机制,值：0:不开启,1:开启
        /// </summary>
        public byte bySupport;
        /// <summary>
        /// 断网重传类型(设备目前只支持一个断网重传布防连接)
        /// </summary>
        /// <remarks>
        /// bit0: 车牌检测(IPC)
        /// bit1: 客流统计(IPC)
        /// bit2: 热度图统计(IPC)
        /// bit3: 人脸抓拍(IPC)
        /// bit4: 人脸对比(IPC)
        /// bit5: JSON报警透传(IPC)
        /// 例如：byBrokenNetHttp & 0x1 == 0 表示车牌检测结果不重传
        /// </remarks>
        /// <value>
        /// 0: 不重传
        /// 1: 重传
        /// </value>
        public byte byBrokenNetHttp;
        /// <summary>
        /// 任务处理号
        /// </summary>
        public ushort wTaskNo;
        /// <summary>
        /// 布防类型
        /// </summary>
        /// <value>
        /// 0: 客户端布防
        /// 1: 实时布防
        /// </value>
        public byte byDeployType;
        /// <summary>
        /// 脚本
        /// </summary>
        public byte bySubScription;
        /// <summary>
        /// 保留
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
        public byte[] byRes1;
        /// <summary>
        /// 报警图片数据类型
        /// </summary>
        /// <remarks>
        /// 按位表示：
        /// bit0: 人脸抓拍(报警类型为<see cref="COMM_UPLOAD_FACESNAP_RESULT"/>)中图片数据上传类型
        /// bit1: EVENT_JSON(报警类型为<see cref="COMM_VCA_ALARM"/>)中图片数据上传类型
        /// bit2: 人脸比对(报警类型为<see cref="COMM_SNAP_MATCH_ALARM"/>)中图片数据上传类型
        /// 如果设备同时支持URL和二进制传输方式,可以布防的时候通过该参数指定上传的数据格式(二进制或者URL),
        /// 选择URL传输方式时需要设备配置和启用云存储,否则仍默认以二进制数据格式传输。
        /// 如果设备只支持URL方式,该参数赋值无效。
        /// </remarks>
        /// <value>
        /// 0: 二进制传输
        /// 1: URL传输
        /// </value>
        public byte byAlarmTypeURL;
        /// <summary>
        /// 按位表示
        /// </summary>
        /// <remarks>
        /// bit0表示是否上传副驾驶人脸子图
        /// </remarks>
        /// <value>
        /// 0: 不上传
        /// 1: 上传 
        /// </value>
        public byte byCustomCtrl;
    }

    /// <summary>
    /// 异常行为识别报警结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_RULE_ALARM
    {
        /// <summary>
        /// 结构体大小
        /// </summary>
        public uint dwSize;
        /// <summary>
        /// 相对时标
        /// </summary>
        /// <remarks>
        /// 当<see cref="byRelativeTimeFlag"/>为1时,表示为UTC的时间 
        /// </remarks>
        public uint dwRelativeTime;
        /// <summary>
        /// 绝对时标
        /// </summary>
        /// <remarks>
        /// 实际为OSD 时间
        /// </remarks>
        public uint dwAbsTime;
        /// <summary>
        /// 事件规则信息
        /// </summary>
        public NET_VCA_RULE_INFO struRuleInfo;
        /// <summary>
        /// 报警目标信息
        /// </summary>
        public NET_VCA_TARGET_INFO struTargetInfo;
        /// <summary>
        /// 前端设备信息
        /// </summary>
        public NET_VCA_DEV_INFO struDevInfo;
        /// <summary>
        /// 返回图片的长度
        /// </summary>
        /// <remarks>
        /// 为0表示没有图片,大于0表示该结构后面紧跟图片数据
        /// </remarks>
        public uint dwPicDataLen;
        /// <value>
        /// 0: 普通图片
        /// 1: 对比图片
        /// </value>
        public byte byPicType;
        /// <summary>
        /// 关联通道报警图片数量
        /// </summary>
        public byte byRelAlarmPicNum;
        /// <value>
        /// 0: iDS专业智能设备返回
        /// 1: Smart设备返回
        /// </value>
        public byte bySmart;
        /// <summary>
        /// 图片数据传输方式
        /// </summary>
        /// <value>
        /// 0: 二进制
        /// 1: url
        /// </value>
        public byte byPicTransType;
        /// <summary>
        /// 报警ID
        /// </summary>
        /// <value>
        /// 用以标识通道间关联产生的组合报警, 0表示无效
        /// </value>
        public uint dwAlarmID;
        /// <summary>
        /// 与<see cref="NET_VCA_DEV_INFO.byIvmsChannel"/>含义相同,能表示更大的值
        /// </summary>
        public ushort wDevInfoIvmsChannelEx;
        /// <summary>
        /// <see cref="dwRelativeTime"/>字段是否有效
        /// </summary>
        /// <value>
        ///  0: 无效
        ///  1: 有效
        /// </value>
        public byte byRelativeTimeFlag;
        /// <summary>
        /// 附加信息上传使能
        /// </summary>
        /// <value>
        ///  0: 不上传
        ///  1: 上传
        /// </value>
        public byte byAppendInfoUploadEnabled;
        /// <summary>
        /// 指向附加信息<see cref="NET_VCA_APPEND_INFO"/>的指针
        /// </summary>
        /// <remarks>
        /// <see cref="byAppendInfoUploadEnabled"/>为1时有效
        /// </remarks>
        public IntPtr pAppendInfo;
        /// <summary>
        /// 指向图片的指针
        /// </summary>
        public IntPtr pImage;
    }

    /// <summary>
    /// 事件规则信息结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_RULE_INFO
    {
        /// <summary>
        /// 规则序号
        /// </summary>
        /// <remarks>
        /// 为规则配置结构下标 0-7 
        /// </remarks>
        public byte byRuleID;
        /// <summary>
        /// 保留,置为0 
        /// </summary>
        public byte byRes;
        /// <summary>
        /// 行为事件类型扩展
        /// </summary>
        public VCA_RULE_EVENT_TYPE_EX wEventTypeEx;
        /// <summary>
        /// 规则名称 
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = SDKConst.NAME_LEN)]
        public byte[] byRuleName;
        /// <summary>
        /// 警戒事件类型
        /// </summary>
        public VCA_EVENT_TYPE dwEventType;
        /// <summary>
        /// 事件参数
        /// </summary>
        public NET_VCA_EVENT_UNION uEventParam;
    }

    /// <summary>
    /// 警戒规则参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_EVENT_UNION
    {
        /// <summary>
        /// 联合体大小
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 23, ArraySubType = UnmanagedType.U4)]
        public uint[] uLen;
        /// <summary>
        /// 穿越警戒面参数
        /// </summary>
        public NET_VCA_TRAVERSE_PLANE struTraversePlane;
        /// <summary>
        /// 进入/离开区域参数
        /// </summary>
        public NET_VCA_AREA struArea;
        /// <summary>
        /// 入侵参数
        /// </summary>
        public NET_VCA_INTRUSION struIntrusion;
        /// <summary>
        /// 徘徊参数
        /// </summary>
        public NET_VCA_LOITER struLoiter;
        /// <summary>
        /// 丢包/捡包参数
        /// </summary>
        public NET_VCA_TAKE_LEFT struTakeTeft;
        /// <summary>
        /// 停车参数
        /// </summary>
        public NET_VCA_PARKING struParking;
        /// <summary>
        /// 奔跑参数
        /// </summary>
        public NET_VCA_RUN struRun;
        /// <summary>
        /// 人员聚集参数,人员聚集度超过设置的阈值时设备上传报警信息
        /// </summary>
        public NET_VCA_HIGH_DENSITY struHighDensity;
        /// <summary>
        /// 剧烈运动
        /// </summary>
        public NET_VCA_VIOLENT_MOTION struViolentMotion;
        /// <summary>
        /// 攀高
        /// </summary>
        public NET_VCA_REACH_HIGHT struReachHight;
        /// <summary>
        /// 起身（重点人员起身）
        /// </summary>
        public NET_VCA_GET_UP struGetUp;
        /// <summary>
        /// 丢包
        /// </summary>
        public NET_VCA_LEFT struLeft;
        /// <summary>
        /// 捡包
        /// </summary>
        public NET_VCA_TAKE struTake;
        /// <summary>
        /// 人员进入
        /// </summary>
        public NET_VCA_HUMAN_ENTER struHumanEnter;
        /// <summary>
        /// 操作超时
        /// </summary>
        public NET_VCA_OVER_TIME struOvertime;
        /// <summary>
        ///  贴纸条(异物粘贴)
        /// </summary>
        public NET_VCA_STICK_UP struStickUp;
        /// <summary>
        /// 读卡器参数
        /// </summary>
        public NET_VCA_SCANNER struScanner;
        /// <summary>
        /// 高危岗位异常-离岗参数
        /// </summary>
        public NET_VCA_LEAVE_POSITION struLeavePos;
        /// <summary>
        /// 尾随参数
        /// </summary>
        public NET_VCA_TRAIL struTrail;
        /// <summary>
        /// 倒地参数
        /// </summary>
        public NET_VCA_FALL_DOWN struFallDown;
        /// <summary>
        /// 声强突变参数
        /// </summary>
        public NET_VCA_AUDIO_ABNORMAL struAudioAbnormal;
        /// <summary>
        /// 折线攀高参数
        /// </summary>
        public NET_VCA_ADV_REACH_HEIGHT struAdvReachHeight;
        /// <summary>
        /// 目标区域滞留超时参数
        /// </summary>
        public NET_VCA_TOILET_TARRY struToiletTarry;
        /// <summary>
        /// 放风场滞留参数
        /// </summary>
        public NET_VCA_YARD_TARRY struYardTarry;
        /// <summary>
        /// 折线警戒面参数
        /// </summary>
        public NET_VCA_ADV_TRAVERSE_PLANE struAdvTraversePlane;
        /// <summary>
        /// 授课事件参数
        /// </summary>
        public NET_VCA_LECTURE struLecture;
        /// <summary>
        /// 回答问题事件参数
        /// </summary>
        public NET_VCA_ANSWER struAnswer;
        /// <summary>
        /// 起立参数
        /// </summary>
        public NET_VCA_STANDUP struStandUp;
        /// <summary>
        /// 人数变化参数
        /// </summary>
        public NET_VCA_PEOPLENUM_CHANGE struPeopleNumChange;
        /// <summary>
        /// 间距变化参数
        /// </summary>
        public NET_VCA_SPACING_CHANGE struSpacingChange;
        /// <summary>
        /// 组合规则参数
        /// </summary>
        public NET_VCA_COMBINED_RULE struCombinedRule;
        /// <summary>
        /// 一动不动事件参数
        /// </summary>
        public NET_VCA_SIT_QUIETLY struSitQuietly;
        /// <summary>
        /// 人员聚集状态
        /// </summary>
        /// <remarks>
        /// 设备按照设置的时间间隔上传实时的人员聚集状态信息, 该时间间隔不支持通过SDK配置, 需要通过服务器的配置文件来修改, 默认: 10s
        /// </remarks>
        public NET_VCA_HIGH_DENSITY_STATUS struHighDensityStatus;
        /// <summary>
        /// 人员奔跑检测
        /// </summary>
        public NET_VCA_RUNNING struRunning;
        /// <summary>
        /// 人员滞留检测
        /// </summary>
        public NET_VCA_RETENTION struRetention;
        /// <summary>
        /// 板书参数
        /// </summary>
        public NET_VCA_BLACKBOARD_WRITE struBlackboardWrite;
        /// <summary>
        /// 玩手机检测参数
        /// </summary>
        public NET_VCA_PLAY_CELLPHONE struPlayCellphone;
        /// <summary>
        /// 持续报警参数
        /// </summary>
        public NET_VCA_DURATION struDruation;
    }

    /// <summary>
    /// 穿越警戒面参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_TRAVERSE_PLANE
    {
        /// <summary>
        /// 警戒面底边
        /// </summary>
        public NET_VCA_LINE struPlaneBottom;
        /// <summary>
        /// 穿越方向
        /// </summary>
        public VCA_CROSS_DIRECTION dwCrossDirection;
        /// <summary>
        /// 灵敏度
        /// </summary>
        /// <remarks>
        /// 取值范围：[1,5] （对于Smart IPC，取值范围为[1,100]） 
        /// </remarks>
        public byte bySensitivity;
        /// <summary>
        /// 警戒面高度（网络摄像机不支持该参数设置）
        /// </summary>
        public byte byPlaneHeight;
        /// <summary>
        /// 检测目标
        /// </summary>
        /// <remarks>
        /// 0表示所有目标（表示不锁定检测目标，所有目标都将进行检测），其他取值按位表示不同的检测目标
        /// </remarks>
        /// <value>
        /// 0x01: 人
        /// 0x02: 车支持多选
        /// 0x03: 同时检测车和人的目标类型
        /// </value>
        public byte byDetectionTarget;
        /// <summary>
        /// 优先级
        /// </summary>
        /// <remarks>
        /// 0: 低
        /// 1: 中
        /// 2: 高 
        /// </remarks>
        public byte byPriority;
        /// <summary>
        /// 报警置信度
        /// </summary>
        /// <remarks>
        /// 0: 低
        /// 1: 较低
        /// 2: 较高
        /// 3: 高 
        /// </remarks>
        public byte byAlarmConfidence;
        /// <summary>
        /// 录像置信度
        /// </summary>
        /// <remarks>
        /// 0: 低
        /// 1: 较低
        /// 2: 较高
        /// 3: 高
        /// </remarks>
        public byte byRecordConfidence;
        /// <summary>
        /// 保留，置为0 
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 34)]
        public byte[] byRes2;
    }

    /// <summary>
    /// 线结构参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_LINE
    {
        /// <summary>
        /// 起点
        /// </summary>
        public NET_VCA_POINT struStart;
        /// <summary>
        /// 终点
        /// </summary>
        public NET_VCA_POINT struEnd;
    }

    /// <summary>
    /// 点坐标参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_POINT
    {
        /// <summary>
        /// X轴坐标
        /// </summary>
        /// <remarks>
        /// 取值范围[0.001, 1]
        /// </remarks>
        public float fX;
        /// <summary>
        /// Y轴坐标
        /// </summary>
        /// <remarks>
        /// 取值范围[0.001, 1]
        /// </remarks>
        public float fY;
    }

    /// <summary>
    /// 进入/离开区域参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_AREA
    {
        /// <summary>
        /// 区域范围 
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 灵敏度参数
        /// </summary>
        /// <remarks>
        /// 取值范围：[1, 5]
        /// </remarks>
        public byte bySensitivity;
        /// <summary>
        /// 检测目标
        /// </summary>
        /// <remarks>
        /// 0表示所有目标（表示不锁定检测目标，所有目标都将进行检测），其他取值按位表示不同的检测目标
        /// </remarks>
        /// <value>
        /// 0x01: 人
        /// 0x02: 车支持多选
        /// 0x03: 同时检测车和人的目标类型
        /// </value>
        public byte byDetectionTarget;
        /// <summary>
        /// 保留，置为0 
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
        public byte[] byRes;
    }

    /// <summary>
    /// 多边形结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_POLYGON
    {
        /// <summary>
        /// 有效点（大于等于3）
        /// </summary>
        /// <remarks>
        /// 若是3点在一条线上认为是无效区域，线交叉认为是无效区域
        /// </remarks>
        public uint dwPointNum;
        /// <summary>
        /// 多边形边界点，最大值为10 
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = SDKConst.VCA_MAX_POLYGON_POINT_NUM)]
        public NET_VCA_POINT[] struPos;
    }

    /// <summary>
    /// 入侵参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_INTRUSION
    {
        /// <summary>
        /// 区域范围 
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 行为事件触发时间阈值，判断有效报警的时间。不同的设备取值范围不同，智能服务器为1~120秒（默认：5秒），ATM设备为1~1200秒，Smart IPC为1～100秒 
        /// </summary>
        public ushort wDuration;
        /// <summary>
        /// 灵敏度参数，取值范围：[1,100] 
        /// </summary>
        public byte bySensitivity;
        /// <summary>
        /// 占比：区域内所有未报警目标尺寸目标占区域面积的比重，归一化为1~100 
        /// </summary>
        public byte byRate;
        /// <summary>
        /// 检测目标
        /// </summary>
        /// <remarks>
        /// 0表示所有目标（表示不锁定检测目标，所有目标都将进行检测），其他取值按位表示不同的检测目标
        /// </remarks>
        /// <value>
        /// 0x01: 人
        /// 0x02: 车支持多选
        /// 0x03: 同时检测车和人的目标类型
        /// </value>
        public byte byDetectionTarget;
        /// <summary>
        /// 优先级
        /// </summary>
        /// <value>
        /// 0: 低
        /// 1: 中
        /// 2: 高 
        /// </value>
        public byte byPriority;
        /// <summary>
        /// 报警置信度
        /// </summary>
        /// <value>
        /// 0: 低
        /// 1: 较低
        /// 2: 较高
        /// 3: 高
        /// </value>
        public byte byAlarmConfidence;
        /// <summary>
        /// 录像置信度
        /// </summary>
        /// <value>
        /// 0: 低
        /// 1: 较低
        /// 2: 较高
        /// 3: 高 
        /// </value>
        public byte byRecordConfidence;
    }

    /// <summary>
    /// 徘徊参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_LOITER
    {
        /// <summary>
        /// 区域范围
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 触发徘徊报警的持续时间：1-120秒，建议10秒
        /// </summary>
        public ushort wDuration;
        /// <summary>
        /// 保留，置为0 
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
        public byte[] byRes;
    }

    /// <summary>
    /// 丢包/捡包参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_TAKE_LEFT
    {
        /// <summary>
        /// 区域范围
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 触发丢包/捡包报警的持续时间：1-120秒，建议10秒
        /// </summary>
        public ushort wDuration;
        /// <summary>
        /// 保留，置为0 
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
        public byte[] byRes;
    }

    /// <summary>
    /// 停车参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_PARKING
    {
        /// <summary>
        /// 区域范围 
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 触发停车报警的持续时间：1-120秒，建议10秒
        /// </summary>
        public ushort wDuration;
        /// <summary>
        /// 保留，置为0 
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
        public byte[] byRes;
    }

    /// <summary>
    /// 快速移动参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_RUN
    {
        /// <summary>
        /// 区域范围 
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 人奔跑最大距离，像素模式取值范围：[0.1, 1.00]，实际模式取值范围：(1, 20)m/s：
        /// </summary>
        public float fRunDistance;
        /// <summary>
        /// 灵敏度参数，取值范围：[1, 5] 
        /// </summary>
        public byte bySensitivity;
        /// <summary>
        /// 距离模式
        /// </summary>
        /// <value>
        /// 0: 像素模式
        /// 1: 实际模式
        /// </value>
        public byte byMode;
        /// <summary>
        /// 检测目标
        /// </summary>
        /// <remarks>
        /// 0表示所有目标（表示不锁定检测目标，所有目标都将进行检测），其他取值按位表示不同的检测目标
        /// </remarks>
        /// <value>
        /// 0x01: 人
        /// 0x02: 车支持多选
        /// 0x03: 同时检测车和人的目标类型
        /// </value>
        public byte byDetectionTarget;
        /// <summary>
        /// 保留，置为0 
        /// </summary>
        public byte byRes;
    }

    /// <summary>
    /// 人员聚集参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_HIGH_DENSITY
    {
        /// <summary>
        /// 区域范围
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 密度比率，取值范围：[0.1, 1.0] 
        /// </summary>
        public float fDensity;
        /// <summary>
        /// 灵敏度参数，取值范围：[1,5] 
        /// </summary>
        public byte bySensitivity;
        /// <summary>
        /// 保留，置为0 
        /// </summary>
        public byte byRes;
        /// <summary>
        /// 触发人员聚集参数报警阈值，20~360s 
        /// </summary>
        public ushort wDuration;
    }

    /// <summary>
    /// 剧烈运动参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_VIOLENT_MOTION
    {
        /// <summary>
        /// 区域范围
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 触发事件阈值，1-50秒
        /// </summary>
        public ushort wDuration;
        /// <summary>
        /// 灵敏度参区域范围数，取值范围：[1, 100]
        /// </summary>
        public byte bySensitivity;
        /// <value>
        /// 0: 纯视频模式
        /// 1: 音视频联合模式
        /// 2: 纯音频模式 
        /// </value>
        public byte byMode;
        /// <summary>
        /// 保留
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
        public byte[] byRes;
    }

    /// <summary>
    /// 攀高参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_REACH_HIGHT
    {
        /// <summary>
        /// 攀高警戒面
        /// </summary>
        public NET_VCA_LINE struVcaLine;
        /// <summary>
        /// 触发事件阈值，1-100秒
        /// </summary>
        public ushort wDuration;
        /// <summary>
        /// 保留
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
        public byte[] byRes;
    }

    /// <summary>
    /// 起身参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_GET_UP
    {
        /// <summary>
        /// 区域范围
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 触发事件阈值，取值范围：1~100秒
        /// </summary>
        public ushort wDuration;
        /// <summary>
        /// 起身检测模式
        /// </summary>
        /// <remarks>
        /// 0: 大床通铺模式
        /// 1: 高低铺模式
        /// 2: 大床通铺坐立起身模式 
        /// </remarks>
        public byte byMode;
        /// <summary>
        /// 灵敏度参数，取值范围：[1, 100]
        /// </summary>
        public byte bySensitivity;
        /// <summary>
        /// 保留
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
        public byte[] byRes;
    }

    /// <summary>
    /// 丢包参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_LEFT
    {
        /// <summary>
        /// 区域范围 
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 触发事件阈值，10~100秒 
        /// </summary>
        public ushort wDuration;
        /// <summary>
        /// 灵敏度，取值范围：[1, 5] 
        /// </summary>
        public byte bySensitivity;
        /// <summary>
        /// 保留
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)]
        public byte[] byRes;
    }

    /// <summary>
    /// 捡包参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_TAKE
    {
        /// <summary>
        /// 区域范围 
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 触发捡包报警阈值，10~100秒 
        /// </summary>
        public ushort wDuration;
        /// <summary>
        /// 灵敏度，取值范围：[1, 5] 
        /// </summary>
        public byte bySensitivity;
        /// <summary>
        /// 保留
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)]
        public byte[] byRes;
    }

    /// <summary>
    /// 人员进入参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_HUMAN_ENTER
    {
        /// <summary>
        /// 保留
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 23, ArraySubType = UnmanagedType.U4)]
        public uint dwRes;
    }

    /// <summary>
    /// 操作超时结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_OVER_TIME
    {
        /// <summary>
        /// 区域范围
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 操作报警时间阈值
        /// </summary>
        public ushort wDuration;
        /// <summary>
        /// 保留
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
        public byte[] byRes;
    }

    /// <summary>
    /// 贴纸条(异物粘贴)参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_STICK_UP
    {
        /// <summary>
        /// 区域范围
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 触发时间阈值：4-60秒，建议10秒
        /// </summary>
        public ushort wDuration;
        /// <summary>
        /// 灵敏度参数，范围[1, 5] 
        /// </summary>
        public byte bySensitivity;
        /// <summary>
        /// 保留，置为0 
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)]
        public byte[] byRes;
    }

    /// <summary>
    /// 读卡器参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_SCANNER
    {
        /// <summary>
        /// 区域范围 
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 读卡持续时间：4-60秒，建议10s秒
        /// </summary>
        public ushort wDuration;
        /// <summary>
        /// 灵敏度参数，范围[1, 5] 
        /// </summary>
        public byte bySensitivity;
        /// <summary>
        /// 保留，置为0
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)]
        public byte[] byRes;
    }

    /// <summary>
    /// 高危岗位异常-离岗事件参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_LEAVE_POSITION
    {
        /// <summary>
        /// 区域范围
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 无人报警时间
        /// </summary>
        /// <remarks>
        /// 单位：秒
        /// 取值范围：[1, 1800]
        /// </remarks>
        public ushort wLeaveDelay;
        /// <summary>
        /// 睡觉报警时间
        /// </summary>
        /// <remarks>
        /// 单位：秒
        /// 取值范围：[1, 1800]
        /// </remarks>
        public ushort wStaticDelay;
        /// <summary>
        /// 模式
        /// </summary>
        /// <value>
        /// 0: 高危岗位异常-离岗事件
        /// 1: 高危岗位异常-睡岗事件
        /// 2: 高危岗位异常-离睡岗事件
        /// </value>
        public byte byMode;
        /// <summary>
        /// 值岗人数类型
        /// </summary>
        /// <remarks>
        /// 0: 单人值岗
        /// 1: 双人值岗
        /// </remarks>
        public byte byPersonType;
        /// <summary>
        /// 在岗人数，取值范围 [1, 10]，默认1
        /// </summary>
        public byte byOnPosition;
        /// <summary>
        /// 灵敏度参数，取值范围 [1, 5]
        /// </summary>
        public byte bySensitivity;

    }

    /// <summary>
    /// 尾随参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_TRAIL
    {
        /// <summary>
        /// 区域范围
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 保留
        /// </summary>
        public ushort wRes;
        /// <summary>
        /// 灵敏度，取值范围：[1, 5]
        /// </summary>
        public byte bySensitivity;
        /// <summary>
        /// 保留
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)]
        public byte[] byRes;
    }

    /// <summary>
    /// 倒地参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_FALL_DOWN
    {
        /// <summary>
        /// 区域范围
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 触发事件阈值，单位：秒，取值范围：[1, 3600]
        /// </summary>
        public ushort wDuration;
        /// <summary>
        /// 灵敏度，取值范围：[1, 5] 
        /// </summary>
        public byte bySensitivity;
        /// <summary>
        /// 高度阈值，取值范围：[0,250]，默认：90，单位：厘米
        /// </summary>
        public byte byHeightThreshold;
        /// <summary>
        /// 保留
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
        public byte[] byRes;
    }

    /// <summary>
    /// 声强陡升侦测参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_AUDIO_ABNORMAL
    {
        /// <summary>
        /// 声音强度，保留
        /// </summary>
        public ushort wDecibel;
        /// <summary>
        /// 灵敏度参数
        /// </summary>
        /// <remarks>
        /// 取值范围：[1, 100] 
        /// </remarks>
        public byte bySensitivity;
        /// <summary>
        /// 声音检测模式
        /// </summary>
        /// <value>
        /// 0: 启用灵敏度检测
        /// 1: 启用分贝阈值检测
        /// 2: 都启用 
        /// </value>
        public byte byAudioMode;
        /// <summary>
        /// 是否开启声强陡升侦测功能
        /// </summary>
        /// <value>
        /// 0: 否
        /// 1: 是 
        /// </value>
        public byte byEnable;
        /// <summary>
        /// 声音强度阈值
        /// </summary>
        /// <remarks>
        /// 取值范围：[1, 100]
        /// </remarks>
        public byte byThreshold;
        /// <summary>
        /// 保留，置为0 
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 54)]
        public byte[] byRes;
    }

    /// <summary>
    /// 折线攀高参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_ADV_REACH_HEIGHT
    {
        /// <summary>
        /// 区域范围
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 跨越方向
        /// </summary>
        public VCA_CROSS_DIRECTION dwCrossDirection;
        /// <summary>
        /// 保留
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
        public byte byRes;
    }

    /// <summary>
    /// 目标区域滞留超时参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_TOILET_TARRY
    {
        /// <summary>
        /// 区域范围
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 目标区域滞留超时时间
        /// </summary>
        /// <remarks>
        /// 单位：秒, 取值范围: [1, 3600]
        /// </remarks>
        public ushort wDelay;
        /// <summary>
        /// 保留
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
        public byte[] byRes;
    }

    /// <summary>
    /// 放风场滞留参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_YARD_TARRY
    {
        /// <summary>
        /// 区域范围
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 放风场滞留时间
        /// </summary>
        /// <remarks>
        /// 单位：秒, 取值范围：[1, 120]
        /// </remarks>
        public ushort wDelay;
        /// <summary>
        /// 保留
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
        public byte[] byRes;
    }

    /// <summary>
    /// 折线警戒面参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_ADV_TRAVERSE_PLANE
    {
        /// <summary>
        /// 折线警戒面
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 跨越方向
        /// </summary>
        public VCA_CROSS_DIRECTION dwCrossDirection;
        /// <summary>
        /// 灵敏度
        /// </summary>
        /// <remarks>
        /// 取值范围：[1, 5]
        /// </remarks>
        public byte bySensitivity;
        /// <summary>
        /// 保留
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
        public byte[] byRes;
    }

    /// <summary>
    /// 授课参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_LECTURE
    {
        /// <summary>
        /// 区域范围
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 行为事件触发时间阈值
        /// </summary>
        /// <remarks>
        /// 1-10秒，建议1秒，判断是有效报警的时间
        /// </remarks>
        public ushort wDuration;
        /// <summary>
        /// 灵敏度参数
        /// </summary>
        /// <remarks>
        /// 范围[1-100] 
        /// </remarks>
        public byte bySensitivity;
        /// <summary>
        /// 只读字段界面不显示
        /// </summary>
        /// <value>
        /// 0: 保留
        /// 1: 报警开始
        /// 2: 报警结束 
        /// </value>
        public byte byAlarmState;
        /// <summary>
        /// 跟随模式 
        /// </summary>
        /// <value>
        /// 0: 自动(默认)
        /// 1: 水平
        /// 2: 垂直
        /// </value>
        public byte byTrackingMode;
        /// <summary>
        /// 变倍模式
        /// </summary>
        /// <value>
        /// 0: 固定(默认)
        /// 1: 自动 
        /// </value>
        public byte byZoomMode;
        /// <value>
        /// 0: 保留
        /// 1: 变倍到位(报警上传录播主机, 作为切换画面判断依据)
        /// </value>
        public byte byZoomOver;
        /// <summary>
        /// 跟随状态
        /// </summary>
        /// <value>
        /// 0: 保留
        /// 1: 开始授课（A，全景）
        /// 2: 正在跟随（2,特写）
        /// 3: 跟随丢失（2,全景）
        /// </value>
        public byte byTrackStatus;
    }

    /// <summary>
    /// 回答问题参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_ANSWER
    {
        /// <summary>
        /// 区域范围
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 灵敏度参数，范围[1-100]
        /// </summary>
        public byte bySensitivity;
        /// <summary>
        /// 只读字段界面不显示
        /// </summary>
        /// <value>
        /// 0: 保留
        /// 1: 报警开始
        /// 2: 报警结束
        /// </value>
        public byte byAlarmState;
        /// <value>
        /// 0: 保留
        /// 1: 变倍到位
        /// </value>
        public byte byZoomOver;
        /// <value>
        /// 0: 保留
        /// 1: 无学生起立
        /// 2: 单个学生
        /// 3: 多个学生
        /// </value>
        public byte byAnswerStudent;
        /// <summary>
        /// 保留，置为0
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
        public byte[] byRes;
    }

    /// <summary>
    /// 起立参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_STANDUP
    {
        /// <summary>
        /// 区域范围
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 灵敏度
        /// </summary>
        /// <remarks>
        /// 取值范围：[1, 100]
        /// </remarks>
        public byte bySensitivity;
        /// <summary>
        /// 高度阈值
        /// </summary>
        /// <remarks>
        /// 单位：厘米
        /// 取值范围：[0, 250]，默认：130
        /// </remarks>
        public byte byHeightThreshold;
        /// <summary>
        /// 触发事件阈值
        /// </summary>
        /// <remarks>
        /// 单位：秒
        /// 取值范围：[1, 3600], 默认：2 
        /// </remarks>
        public ushort wDuration;
        /// <summary>
        /// 保留
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
        public byte[] byRes;
    }

    /// <summary>
    /// 人数变化参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_PEOPLENUM_CHANGE
    {
        /// <summary>
        /// 区域范围
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 灵敏度
        /// </summary>
        /// <remarks>
        /// 取值范围：[1, 100]
        /// </remarks>
        public byte bySensitivity;
        /// <summary>
        /// 人数阈值 
        /// </summary>
        /// <remarks>
        /// 取值范围：[0, 5]，默认：1
        /// </remarks>
        public byte byPeopleNumThreshold;
        /// <summary>
        /// 检测方式，与人数阈值相比较
        /// </summary>
        /// <value>
        /// 1: 大于
        /// 2: 小于
        /// 3: 等于
        /// 4: 不等于
        /// </value>
        public byte byDetectMode;
        /// <summary>
        /// 无人状态是否有效
        /// </summary>
        /// <value>
        /// 0: 无效
        /// 1: 有效
        /// </value>
        public byte byNoneStateEffective;
        /// <summary>
        /// 无人状态是否有效
        /// </summary>
        /// <value>
        /// 0: 无效
        /// 1: 有效
        /// </value>
        public ushort wDuration;
        /// <summary>
        /// 触发事件阈值
        /// </summary>
        /// <remarks>
        /// 单位：秒
        /// 取值范围：[1, 3600]，默认：2
        /// </remarks>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
        public byte[] byRes;
    }

    /// <summary>
    /// 间距变化参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_SPACING_CHANGE
    {
        /// <summary>
        /// 区域范围
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 间距阈值
        /// </summary>
        /// <remarks>
        /// 单位：米
        /// 取值范围：[0,10.0]，默认：1.0
        /// </remarks>
        public float fSpacingThreshold;
        /// <summary>
        /// 灵敏度
        /// </summary>
        /// <remarks>
        /// 取值范围：[1,100]
        /// </remarks>
        public byte bySensitivity;
        /// <summary>
        /// 检测方式，与人数阈值相比较
        /// </summary>
        /// <value>
        /// 1: 大于
        /// 2: 小于
        /// </value>
        public byte byDetectMode;
        /// <summary>
        /// 触发事件阈值
        /// </summary>
        /// <remarks>
        /// 单位：秒
        /// 取值范围：[1, 3600]，默认：2
        /// </remarks>
        public ushort wDuration;
    }

    /// <summary>
    /// 组合规则参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_COMBINED_RULE
    {
        /// <summary>
        /// 规则触发顺序：0- 顺序或逆序触发，1- 顺序触发
        /// </summary>
        public byte byRuleSequence;
        /// <summary>
        /// 保留，置为0
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 7)]
        public byte[] byRes;
        /// <summary>
        /// 最小时间间隔
        /// </summary>
        /// <remarks>
        /// 单位：秒
        /// </remarks>
        public uint dwMinInterval;
        /// <summary>
        /// 最大时间间隔
        /// </summary>
        /// <remarks>
        /// 单位：秒
        /// </remarks>
        public uint dwMaxInterval;
        /// <summary>
        /// 规则1 
        /// </summary>
        NET_VCA_RELATE_RULE_PARAM struRule1Raram;
        /// <summary>
        /// 规则2 
        /// </summary>
        NET_VCA_RELATE_RULE_PARAM struRule2Raram;
        /// <summary>
        /// 保留，置为0 
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 36)]
        public byte[] byRes1;
    }

    /// <summary>
    /// 关联规则结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_RELATE_RULE_PARAM
    {
        /// <summary>
        /// 规则序号 
        /// </summary>
        /// <remarks>
        /// 0表示无
        /// </remarks>
        public byte byRuleID;
        /// <summary>
        /// 保留，置为0
        /// </summary>
        public byte byRes;
        /// <summary>
        /// 行为事件类型
        /// </summary>
        public VCA_RULE_EVENT_TYPE_EX wEventType;
    }

    /// <summary>
    /// 一动不动事件参数结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_SIT_QUIETLY
    {
        /// <summary>
        /// 区域范围
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 持续时间
        /// </summary>
        /// <remarks>
        /// 单位：秒
        /// 取值范围：[1, 3600]
        /// </remarks>
        public uint dwDuration;
        /// <summary>
        /// 保留，置为0
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
        public byte[] byRes;
    }

    /// <summary>
    /// 人员聚集状态信息结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_HIGH_DENSITY_STATUS
    {
        /// <summary>
        /// 区域范围
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 密度比率
        /// </summary>
        /// <remarks>
        /// 取值范围: [0.1, 1.0]
        /// </remarks>
        public float fDensity;
        /// <summary>
        /// 灵敏度参数
        /// </summary>
        /// <remarks>
        /// 范围: [0, 100]
        /// </remarks>
        public byte bySensitivity;
        /// <summary>
        /// 保留，置为0
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
        public byte[] byRes;
    }

    /// <summary>
    /// 人员奔跑检测结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_RUNNING
    {
        /// <summary>
        /// 区域范围
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 奔跑速度
        /// </summary>
        /// <remarks>
        /// 取值范围：[1, 10]
        /// </remarks>
        public uint dwSpeed;
        /// <summary>
        /// 保留，置为0
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
        public byte[] byRes;
    }

    /// <summary>
    /// 人员滞留检测结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_RETENTION
    {
        /// <summary>
        /// 区域范围
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 触发滞留报警阈值时间
        /// </summary>
        /// <remarks>
        /// 单位：秒
        /// 取值范围: {60, 3600}，默认为1800
        /// </remarks>
        public ushort wDuration;
        /// <summary>
        /// 保留，置为0
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
        public byte[] byRes;
    }

    /// <summary>
    /// 板书信息配置结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_BLACKBOARD_WRITE
    {
        /// <summary>
        /// 区域范围
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 教师状态（报警上传时生效）
        /// </summary>
        /// <value>
        /// 0: 教师特写
        /// 1: 教师全景
        /// 2: 讲台无人状态 
        /// </value>
        public byte byTeacherState;
        /// <summary>
        /// 板书状态（报警上传时生效）
        /// </summary>
        /// <value>
        /// 0: 板书开始
        /// 1: 板书结束 
        /// </value>
        public byte byWritingState;
        /// <summary>
        /// 板书区域（报警上传时生效）
        /// </summary>
        /// <value>
        /// 0: 整个板书
        /// 1: 板书左边
        /// 2: 板书右边 
        /// </value>
        public byte byWritingArea;
        /// <summary>
        /// 保留，置为0
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)]
        public byte[] byRes;
    }

    /// <summary>
    /// 玩手机信息结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_PLAY_CELLPHONE
    {
        /// <summary>
        /// 区域范围
        /// </summary>
        public NET_VCA_POLYGON struRegion;
        /// <summary>
        /// 玩手机超时时间
        /// </summary>
        /// <remarks>
        /// 单位：秒
        /// 取值范围: [1,600], 默认20 
        /// </remarks>
        public ushort wDuration;
        /// <summary>
        /// 保留字节
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
        public byte[] byRes;
    }

    /// <summary>
    /// 持续报警结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_DURATION
    {
        /// <summary>
        /// 事件类型
        /// </summary>
        public VCA_RULE_EVENT_TYPE_EX wRelationEventType;
        /// <summary>
        /// 保留
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 90)]
        public byte[] byRes;
    }

    /// <summary>
    /// 报警目标信息结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_TARGET_INFO
    {
        /// <summary>
        /// 目标ID
        /// </summary>
        /// <remarks>
        /// 人员密度过高报警时为0
        /// </remarks>
        public uint dwID;
        /// <summary>
        /// 目标边界框
        /// </summary>
        public NET_VCA_RECT struRect;
        /// <summary>
        /// 保留，置为0
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
        public byte[] byRes;
    }

    /// <summary>
    /// 前端设备信息结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_VCA_DEV_INFO
    {
        /// <summary>
        /// 报警通道对应设备的IP地址
        /// </summary>
        public NET_DVR_IPADDR struDevIP;
        /// <summary>
        /// 报警通道对应设备的端口号
        /// </summary>
        public ushort wPort;
        /// <summary>
        /// 报警通道对应设备的通道号
        /// </summary>
        /// <remarks>
        /// 参数值即表示通道号
        /// </remarks>
        public byte byChannel;
        /// <summary>
        /// SDK接入设备的通道号
        /// </summary>
        public byte byIvmsChannel;
    }

    /// <summary>
    /// IP地址结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct NET_DVR_IPADDR
    {
        /// <summary>
        /// 设备IPv4地址
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
        public byte[] sIpV4;
        /// <summary>
        /// 设备IPv6地址
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
        public byte[] sIpV6;
    }
    #endregion

    #region 常量
    /// <summary>
    /// SDK常量
    /// </summary>
    class SDKConst
    {
        /// <summary>
        /// 序列号长度
        /// </summary>
        public const int SERIALNO_LEN = 48;
        /// <summary>
        /// 视频流ID长度
        /// </summary>
        public const int STREAM_ID_LEN = 32;
        /// <summary>
        /// 名字长度
        /// </summary>
        public const int NAME_LEN = 32;
        /// <summary>
        /// Mc地址长度
        /// </summary>
        public const int MACADDR_LEN = 6;
        /// <summary>
        /// 最大通道数
        /// </summary>
        public const int MAX_CATEGORY_LEN = 8;
        /// <summary>
        /// 车牌号最大长度
        /// </summary>
        public const int MAX_LICENSE_LEN = 16;
        /// <summary>
        /// 最大设备描述长度
        /// </summary>
        public const int MAX_DEVDESC_LEN = 64;
        /// <summary>
        /// 最大车轴数
        /// </summary>
        public const int MAX_TRUCK_AXLE_NUM = 10;
        /// <summary>
        /// 最大报警输出
        /// </summary>
        public const int MAX_ALARMOUT_V30 = 96;
        /// <summary>
        /// 最大通道数
        /// </summary>
        public const int MAX_CHANNUM_V30 = 64;
        /// <summary>
        /// 最大硬盘数
        /// </summary>
        public const int MAX_DISKNUM_V30 = 33;
        /// <summary>
        /// 最大多边形点编号
        /// </summary>
        public const int VCA_MAX_POLYGON_POINT_NUM = 10;
    }
    #endregion

    #region 枚举
    /// <summary>
    /// <see cref="NET_DVR_DEVICEINFO_V30.byDVRType"/> 和 <see cref="NET_DVR_DEVICEINFO_V30.wDevType"/> 的枚举
    /// </summary>
    public enum DVROrDevTypeEnum
    {
        /// <summary>
        /// 尚未定义的DVR类型
        /// </summary>
        DVR = 1,
        /// <summary>
        /// ATM DVR
        /// </summary>
        ATMDVR = 2,
        /// <summary>
        /// DVS
        /// </summary>
        DVS = 3,
        /// <summary>
        /// 6001D
        /// </summary>
        DEC = 4,
        /// <summary>
        /// 6001F
        /// </summary>
        ENC_DEC = 5,
        /// <summary>
        /// 8000HC
        /// </summary>
        DVR_HC = 6,
        /// <summary>
        /// 8000HT
        /// </summary>
        DVR_HT = 7,
        /// <summary>
        /// 8000HF
        /// </summary>
        DVR_HF = 8,
        /// <summary>
        /// 8000HS DVR(no audio) 
        /// </summary>
        DVR_HS = 9,
        /// <summary>
        /// 8016HTS DVR(no audio) 
        /// </summary>
        DVR_HTS = 10,
        /// <summary>
        ///  HB DVR(SATA HD) 
        /// </summary>
        DVR_HB = 11,
        /// <summary>
        /// 8000HCS DVR
        /// </summary>
        DVR_HCS = 12,
        /// <summary>
        /// 带ATA硬盘的DVS
        /// </summary>
        DVS_A = 13,
        /// <summary>
        /// 8000HC-S
        /// </summary>
        DVR_HC_S = 14,
        /// <summary>
        /// 8000HT-S
        /// </summary>
        DVR_HT_S = 15,
        /// <summary>
        /// 8000HF-S
        /// </summary>
        DVR_HF_S = 16,
        /// <summary>
        /// 8000HS-S
        /// </summary>
        DVR_HS_S = 17,
        /// <summary>
        /// ATM-S
        /// </summary>
        ATMDVR_S = 18,
        /// <summary>
        /// 7000H系列
        /// </summary>
        DVR_7000H = 19,
        /// <summary>
        /// 多路解码器
        /// </summary>
        DEC_MAT = 20,
        /// <summary>
        /// mobile DVR
        /// </summary>
        DVR_MOBILE = 21,
        /// <summary>
        /// 8000HD-S
        /// </summary>
        DVR_HD_S = 22,
        /// <summary>
        /// 8000HD-SL
        /// </summary>
        DVR_HD_SL = 23,
        /// <summary>
        /// 8000HC-SL
        /// </summary>
        DVR_HC_SL = 24,
        /// <summary>
        /// 8000HS_ST
        /// </summary>
        DVR_HS_ST = 25,
        /// <summary>
        /// 6000HW
        /// </summary>
        DVS_HW = 26,
        /// <summary>
        /// 多路解码器
        /// </summary>
        DS630X_D = 27,
        /// <summary>
        /// 640X高清解码器
        /// </summary>
        DS640X_HD = 28,
        /// <summary>
        /// 610X解码器
        /// </summary>
        DS610X_D = 29,
        /// <summary>
        /// 标清网络摄像机
        /// </summary>
        IPCAM = 30,
        /// <summary>
        /// 高清网络摄像机
        /// </summary>
        MEGA_IPCAM = 31,
        /// <summary>
        /// X62MF系列摄像机
        /// </summary>
        IPCAM_X62MF = 32,
        /// <summary>
        /// 智能交通摄像机
        /// </summary>
        ITCCAM = 35,
        /// <summary>
        /// 智能分析高清网络摄像机(人脸抓拍机) 
        /// </summary>
        IVS_IPCAM = 36,
        /// <summary>
        /// 一体机
        /// </summary>
        ZOOMCAM = 38,
        /// <summary>
        /// IP标清快球
        /// </summary>
        IPDOME = 40,
        /// <summary>
        /// IP 200万高清快球
        /// </summary>
        IPDOME_MEGA200 = 41,
        /// <summary>
        /// IP 130万高清快球
        /// </summary>
        IPDOME_MEGA130 = 42,
        /// <summary>
        /// IP 高清智能快球
        /// </summary>
        IPDOME_AI = 43,
        /// <summary>
        /// 红外热成像摄像机
        /// </summary>
        TII_IPCAM = 44,
        /// <summary>
        /// 红外热成像双目球机
        /// </summary>
        IPTC_DOME = 45,
        /// <summary>
        /// 球型鹰眼(大) 
        /// </summary>
        DS_2DP_Z = 46,
        /// <summary>
        /// 非球型鹰眼(小) 
        /// </summary>
        DS_2DP = 47,
        /// <summary>
        /// 称重数据管理服务器
        /// </summary>
        ITS_WMS = 48,
        /// <summary>
        /// IP 模块
        /// </summary>
        IPMOD = 50,
        /// <summary>
        /// 交通智能云台(不带雷达测速) 
        /// </summary>
        TRAFFIC_YTDOME = 51,
        /// <summary>
        /// 交通智能云台(带雷达测速) 
        /// </summary>
        TRAFFIC_RDDOME = 52,
        /// <summary>
        /// 6501 车牌识别
        /// </summary>
        IDS6501_HF_P = 60,
        /// <summary>
        /// 智能ATM
        /// </summary>
        IDS6101_HF_A = 61,
        /// <summary>
        /// 双摄像机跟随: DS6002-HF/B
        /// </summary>
        IDS6002_HF_B = 62,
        /// <summary>
        /// 异常行为识别: DS6101-HF/B
        /// </summary>
        IDS6101_HF_B = 63,
        /// <summary>
        /// 智能分析仪
        /// </summary>
        IDS52XX = 64,
        /// <summary>
        ///  9000智能
        /// </summary>
        IDS90XX = 65,
        /// <summary>
        /// 海鑫人脸抓拍 ATM
        /// </summary>
        IDS8104_AHL_S_HX = 66,
        /// <summary>
        /// 私有人脸抓拍 ATM
        /// </summary>
        IDS8104_AHL_S_H = 67,
        /// <summary>
        /// 9100智能
        /// </summary>
        IDS91XX = 68,
        /// <summary>
        /// 智能行为IP摄像机
        /// </summary>
        IIP_CAM_B = 69,
        /// <summary>
        /// 智能人脸IP摄像机
        /// </summary>
        IIP_CAM_F = 70,
        /// <summary>
        /// DS71XXH_S
        /// </summary>
        DS71XX_H = 71,
        /// <summary>
        /// DS72XXH_S
        /// </summary>
        DS72XX_H_S = 72,
        /// <summary>
        /// DS73XXH_S
        /// </summary>
        DS73XX_H_S = 73,
        /// <summary>
        /// DS72XX_HF_S
        /// </summary>
        DS72XX_HF_S = 74,
        /// <summary>
        /// DS73XX_HFI_S
        /// </summary>
        DS73XX_HFI_S = 75,
        /// <summary>
        /// DS76XX_H_S
        /// </summary>
        DS76XX_H_S = 76,
        /// <summary>
        /// DS76XX_N_S
        /// </summary>
        DS76XX_N_S = 77,
        /// <summary>
        /// 机柜智能检测仪
        /// </summary>
        DS_TP3200_EC = 78,
        /// <summary>
        /// DS81XX_HS_S
        /// </summary>
        DS81XX_HS_S = 81,
        /// <summary>
        /// DS81XX_HL_S
        /// </summary>
        DS81XX_HL_S = 82,
        /// <summary>
        /// DS81XX_HC_S
        /// </summary>
        DS81XX_HC_S = 83,
        /// <summary>
        /// DS81XX_HD_S
        /// </summary>
        DS81XX_HD_S = 84,
        /// <summary>
        /// DS81XX_HE_S
        /// </summary>
        DS81XX_HE_S = 85,
        /// <summary>
        /// DS81XX_HF_S
        /// </summary>
        DS81XX_HF_S = 86,
        /// <summary>
        /// DS81XX_AH_S
        /// </summary>
        DS81XX_AH_S = 87,
        /// <summary>
        /// DS81XX_AHF_S
        /// </summary>
        DS81XX_AHF_S = 88,
        /// <summary>
        /// DS90XX_HF_S
        /// </summary>
        DS90XX_HF_S = 90,
        /// <summary>
        /// DS91XX_HF_S
        /// </summary>
        DS91XX_HF_S = 91,
        /// <summary>
        /// 91XXHD-S(MD) 
        /// </summary>
        DS91XX_HD_S = 92,
        /// <summary>
        /// 9000智能 ATM
        /// </summary>
        IDS90XX_A = 93,
        /// <summary>
        /// 9100智能 ATM
        /// </summary>
        IDS91XX_A = 94,
        /// <summary>
        /// DS95XXN-S NVR
        /// </summary>
        DS95XX_N_S = 95,
        /// <summary>
        /// DS96XXN-SH NVR
        /// </summary>
        DS96XX_N_SH = 96,
        /// <summary>
        /// DS90XX_HF_SH
        /// </summary>
        DS90XX_HF_SH = 97,
        /// <summary>
        /// DS91XX_HF_SH
        /// </summary>
        DS91XX_HF_SH = 98,
        /// <summary>
        /// 视频综合平台设备型号(X:编码板片数, Y:解码板片数) 
        /// </summary>
        DS_B10_XY = 100,
        /// <summary>
        /// 视频综合平台内部编码器
        /// </summary>
        DS_6504HF_B10 = 101,
        /// <summary>
        /// 视频综合平台内部解码器
        /// </summary>
        DS_6504D_B10 = 102,
        /// <summary>
        /// 视频综合平台内部码分器
        /// </summary>
        DS_1832_B10 = 103,
        /// <summary>
        /// 视频综合平台内部光纤板
        /// </summary>
        DS_6401HFH_B10 = 104,
        /// <summary>
        /// 65XXHC DVS
        /// </summary>
        DS_65XXHC = 105,
        /// <summary>
        /// 65XXHC-SATA DVS
        /// </summary>
        DS_65XXHC_S = 106,
        /// <summary>
        /// 65XXHF DVS
        /// </summary>
        DS_65XXHF = 107,
        /// <summary>
        /// 65XXHF-SATA DVS
        /// </summary>
        DS_65XXHF_S = 108,
        /// <summary>
        /// 65 rack DVS
        /// </summary>
        DS_6500HF_B = 109,
        /// <summary>
        /// iVMS-6200(/C) 客流量统计
        /// </summary>
        IVMS_6200_C = 110,
        /// <summary>
        /// IVMS_6200_B 异常行为识别
        /// </summary>
        IVMS_6200_B = 111,
        /// <summary>
        /// 72XXHV_ST15 DVR
        /// </summary>
        DS_72XXHV_ST15 = 112,
        /// <summary>
        /// 72XXHV_ST20 DVR
        /// </summary>
        DS_72XXHV_ST20 = 113,
        /// <summary>
        /// IVMS-6200(/T) 
        /// </summary>
        IVMS_6200_T = 114,
        /// <summary>
        /// IVMS-6200(/BP) 
        /// </summary>
        IVMS_6200_BP = 115,
        /// <summary>
        /// DS_81XXHC_ST
        /// </summary>
        DS_81XXHC_ST = 116,
        /// <summary>
        /// DS_81XXHS_ST
        /// </summary>
        DS_81XXHS_ST = 117,
        /// <summary>
        /// DS_81XXAH_ST
        /// </summary>
        DS_81XXAH_ST = 118,
        /// <summary>
        /// DS_81XXAHF_ST
        /// </summary>
        DS_81XXAHF_ST = 119,
        /// <summary>
        /// DS_66XXDVS
        /// </summary>
        DS_66XXDVS = 120,
        /// <summary>
        /// 视频综合平台内部报警器
        /// </summary>
        DS_1964_B10 = 121,
        /// <summary>
        /// 视频综合平台内部级联输入
        /// </summary>
        DS_B10N04_IN = 122,
        /// <summary>
        /// 视频综合平台内部级联输出
        /// </summary>
        DS_B10N04_OUT = 123,
        /// <summary>
        /// 视频综合平台内部智能
        /// </summary>
        DS_B10N04_INTEL = 124,
        /// <summary>
        /// V6高清
        /// </summary>
        DS_6408HFH_B10E_RM = 125,
        /// <summary>
        /// V6级联不带DSP
        /// </summary>
        DS_B10N64F1_RTM = 126,
        /// <summary>
        /// V6级联带DSP
        /// </summary>
        DS_B10N64F1D_RTM = 127,
        /// <summary>
        /// 视频综合平台子域控制器
        /// </summary>
        DS_B10_SDS = 128,
        /// <summary>
        /// 视频综合平台域控制器
        /// </summary>
        DS_B10_DS = 129,
        /// <summary>
        /// VGA高清编码器
        /// </summary>
        DS_6401HFH_B10V = 130,
        /// <summary>
        /// 视频综合平台内部标清解码器
        /// </summary>
        DS_6504D_B10B = 131,
        /// <summary>
        /// 视频综合平台内部高清解码器
        /// </summary>
        DS_6504D_B10H = 132,
        /// <summary>
        /// 视频综合平台内部VGA解码器
        /// </summary>
        DS_6504D_B10V = 133,
        /// <summary>
        /// 视频综合平台SDI子板
        /// </summary>
        DS_6408HFH_B10S = 134,
        /// <summary>
        /// 矩阵接入网关
        /// </summary>
        DS_18XX_N = 135,
        /// <summary>
        /// 光端机SD
        /// </summary>
        DS_6504HF_B10F_CLASS = 136,
        /// <summary>
        /// 网络码分类产品
        /// </summary>
        DS_18XX_PTZ = 141,
        /// <summary>
        /// 通用报警主机类产品
        /// </summary>
        DS_19AXX = 142,
        /// <summary>
        /// 家用报警主机
        /// </summary>
        DS_19BXX = 143,
        /// <summary>
        /// 自助银行报警主机
        /// </summary>
        DS_19CXX = 144,
        /// <summary>
        /// 动环监控报警主机
        /// </summary>
        DS_19DXX = 145,
        /// <summary>
        /// 1900系列报警主机
        /// </summary>
        DS_19XX = 146,
        /// <summary>
        /// 视频报警主机
        /// </summary>
        DS_19SXX = 147,
        /// <summary>
        /// ATM防护舱控制器
        /// </summary>
        DS_1HXX = 148,
        /// <summary>
        /// 紧急求助报警产品
        /// </summary>
        DS_PEAXX = 149,
        /// <summary>
        /// 无线报警主机产品
        /// </summary>
        DS_PWXX = 150,
        /// <summary>
        /// 4G网络模块
        /// </summary>
        DS_PMXX = 151,
        /// <summary>
        /// 视频动环监控主机
        /// </summary>
        DS_19DXX_S = 152,
        /// <summary>
        /// 多屏控制器
        /// </summary>
        DS_C10H = 161,
        /// <summary>
        /// BNC处理器
        /// </summary>
        DS_C10N_BI = 162,
        /// <summary>
        /// RGB处理器
        /// </summary>
        DS_C10N_DI = 163,
        /// <summary>
        /// 码流处理器
        /// </summary>
        DS_C10N_SI = 164,
        /// <summary>
        /// 显示处理器
        /// </summary>
        DS_C10N_DO = 165,
        /// <summary>
        /// 分布式服务器
        /// </summary>
        DS_C10N_SERVER = 166,
        /// <summary>
        /// 8104ATM
        /// </summary>
        IDS_8104_AHFL_S_H = 171,
        /// <summary>
        /// 65 ATM
        /// </summary>
        IDS_65XX_HF_A = 172,
        /// <summary>
        /// 9000 智能RH
        /// </summary>
        IDS90XX_HF_RH = 173,
        /// <summary>
        /// 9100 智能RH设备
        /// </summary>
        IDS91XX_HF_RH = 174,
        /// <summary>
        /// 65 异常行为识别
        /// </summary>
        IDS_65XX_HF_B = 175,
        /// <summary>
        /// 65 车牌识别
        /// </summary>
        IDS_65XX_HF_P = 176,
        /// <summary>
        /// IVMS-6200(/F)人脸分析仪
        /// </summary>
        IVMS_6200_F = 177,
        /// <summary>
        /// iVMS-6200(/A) 
        /// </summary>
        IVMS_6200_A = 178,
        /// <summary>
        /// IVMS-6200(/F_S)人脸后检索分析仪
        /// </summary>
        IVMS_6200_F_S = 179,
        /// <summary>
        /// DS90XX_HF_RH
        /// </summary>
        DS90XX_HF_RH = 181,
        /// <summary>
        /// 9100 RH设备
        /// </summary>
        DS91XX_HF_RH = 182,
        /// <summary>
        /// 78系列设备
        /// </summary>
        DS78XX_S = 183,
        /// <summary>
        /// DVR_81XXHW_S
        /// </summary>
        DS81XXHW_S = 185,
        /// <summary>
        /// DVR_81XXHW_ST
        /// </summary>
        DS81XXHW_ST = 186,
        /// <summary>
        /// DVR_91XXHW_ST
        /// </summary>
        DS91XXHW_ST = 187,
        /// <summary>
        /// DVR_91XX_ST
        /// </summary>
        DS91XX_ST = 188,
        /// <summary>
        /// DVR_81XX_ST
        /// </summary>
        DS81XX_ST = 189,
        /// <summary>
        /// DS81XXHDI_ST, DS81XXHE_ST
        /// </summary>
        DS81XXH_ST = 190,
        /// <summary>
        /// DS73XXHI_ST
        /// </summary>
        DS73XXH_ST = 191,
        /// <summary>
        /// 审讯81SH, 81SHF
        /// </summary>
        DS81XX_SH = 192,
        /// <summary>
        /// 审讯81SNL
        /// </summary>
        DS81XX_SN = 193,
        /// <summary>
        /// NVR: DS96xxN_ST
        /// </summary>
        DS96XXN_ST = 194,
        /// <summary>
        /// NVR: DS86xxN_ST
        /// </summary>
        DS86XXN_ST = 195,
        /// <summary>
        /// DS80xxHF_ST
        /// </summary>
        DS80XXHF_ST = 196,
        /// <summary>
        /// DS90xxHF_ST
        /// </summary>
        DS90XXHF_ST = 197,
        /// <summary>
        /// NVR: DS76xxN_ST
        /// </summary>
        DS76XXN_ST = 198,
        /// <summary>
        /// NVR: DS-9664N-RH、DS-9664N-RT
        /// </summary>
        DS_9664N_RX = 199,
        /// <summary>
        /// 编码卡服务器
        /// </summary>
        ENCODER_SERVER = 200,
        /// <summary>
        /// 解码卡服务器
        /// </summary>
        DECODER_SERVER = 201,
        /// <summary>
        /// PCNVR存储服务器
        /// </summary>
        PCNVR_SERVER = 202,
        /// <summary>
        /// CVR
        /// </summary>
        CVR_SERVER = 203,
        /// <summary>
        /// 高清DVR: DS_91xxHFH_ST
        /// </summary>
        DS_91XXHFH_ST = 204,
        /// <summary>
        /// 66高清编码器
        /// </summary>
        DS_66XXHFH = 205,
        /// <summary>
        /// 终端服务器
        /// </summary>
        TRAFFIC_TS_SERVER = 210,
        /// <summary>
        /// 视频分析记录仪
        /// </summary>
        TRAFFIC_VAR = 211,
        /// <summary>
        /// IP可视对讲主机
        /// </summary>
        IPCALL = 212,
        /// <summary>
        /// SAN(与CVR_SERVER相同的程序, 只是模式不同) 
        /// </summary>
        SAN_SERVER = 213,
        /// <summary>
        /// B11
        /// </summary>
        DS_B11_M_CLASS = 301,
        /// <summary>
        /// B12
        /// </summary>
        DS_B12_M_CLASS = 302,
        /// <summary>
        /// B11内部编码器
        /// </summary>
        DS_6504HF_B11_CLASS = 303,
        /// <summary>
        /// B12内部编码器
        /// </summary>
        DS_6504HF_B12_CLASS = 304,
        /// <summary>
        /// VGA高清
        /// </summary>
        DS_6401HFH_B11V_CLASS = 305,
        /// <summary>
        /// VGA高清
        /// </summary>
        DS_6401HFH_B12V_CLASS = 306,
        /// <summary>
        /// SDI
        /// </summary>
        DS_6408HFH_B11S_CLASS = 307,
        /// <summary>
        /// SDI
        /// </summary>
        DS_6408HFH_B12S_CLASS = 308,
        /// <summary>
        /// B11内部高清解码器
        /// </summary>
        DS_6504D_B11H_CLASS = 309,
        /// <summary>
        /// B11内部标清解码器
        /// </summary>
        DS_6504D_B11B_CLASS = 310,
        /// <summary>
        /// B12内部标清解码器
        /// </summary>
        DS_6504D_B12B_CLASS = 311,
        /// <summary>
        /// B11内部VGA解码器
        /// </summary>
        DS_6504D_B11V_CLASS = 312,
        /// <summary>
        /// B12内部VGA解码器
        /// </summary>
        DS_6504D_B12V_CLASS = 313,
        /// <summary>
        /// B10 RGB高清
        /// </summary>
        DS_6401HFH_B10R_CLASS = 314,
        /// <summary>
        /// B10 DVI高清
        /// </summary>
        DS_6401HFH_B10D_CLASS = 315,
        /// <summary>
        /// B10 HDMI高清
        /// </summary>
        DS_6401HFH_B10H_CLASS = 316,
        /// <summary>
        /// B11 RGB高清
        /// </summary>
        DS_6401HFH_B11R_CLASS = 317,
        /// <summary>
        /// B11 DVI高清
        /// </summary>
        DS_6401HFH_B11D_CLASS = 318,
        /// <summary>
        /// B11 HDMI高清
        /// </summary>
        DS_6401HFH_B11H_CLASS = 319,
        /// <summary>
        /// B12 RGB高清
        /// </summary>
        DS_6401HFH_B12R_CLASS = 320,
        /// <summary>
        /// B12 DVI高清
        /// </summary>
        DS_6401HFH_B12D_CLASS = 321,
        /// <summary>
        /// B12 HDMI高清
        /// </summary>
        DS_6401HFH_B12H_CLASS = 322,
        /// <summary>
        /// B10 netra高清解码
        /// </summary>
        DS_65XXD_B10Ex_CLASS = 323,
        /// <summary>
        /// B10 netra高清编码
        /// </summary>
        DS_6516HW_B10_CLASS = 324,
        /// <summary>
        /// B11 netra高清解码
        /// </summary>
        DS_6504D_B11Ex_CLASS = 328,
        /// <summary>
        /// B12 netra高清解码
        /// </summary>
        DS_6504D_B12Ex_CLASS = 329,
        /// <summary>
        /// B11 netra高清编码
        /// </summary>
        DS_6512_B11_CLASS = 330,
        /// <summary>
        /// B12 netra高清编码
        /// </summary>
        DS_6512_B12_CLASS = 331,
        /// <summary>
        /// 视频综合平台内部高清解码器
        /// </summary>
        DS_6504D_B10H_CLASS = 332,
        /// <summary>
        /// 视频综合平台转码子系统
        /// </summary>
        DS_65XXT_B10_CLASS = 333,
        /// <summary>
        /// 视频综合平台万能解码板
        /// </summary>
        DS_65XXD_B10_CLASS = 335,
        /// <summary>
        /// X86服务器子系统
        /// </summary>
        DS_IVMSE_B10X_CLASS = 336,
        /// <summary>
        /// 增强型解码板_SDI(B10) 
        /// </summary>
        DS_6532D_B10ES_CLASS = 337,
        /// <summary>
        /// SDI输入编码子系统
        /// </summary>
        DS_6508HFH_B10ES_CLASS = 338,
        /// <summary>
        /// 联网网关中的子系统
        /// </summary>
        DS_82NCG_CLASS = 340,
        /// <summary>
        /// 联网网关中的子系统
        /// </summary>
        DS_82VAG_CLASS = 341,
        /// <summary>
        /// 光口交换子系统
        /// </summary>
        DS_1802XXF_B10_CLASS = 342,
        /// <summary>
        /// 智能子系统
        /// </summary>
        iDS_6504_B10EVAC_CLASS = 343,
        /// <summary>
        /// 智能子系统
        /// </summary>
        iDS_6504_B10EDEC_CLASS = 344,
        /// <summary>
        /// netra编码(VGA) 
        /// </summary>
        DS_6402HFH_B10EV_CLASS = 345,
        /// <summary>
        /// netra编码(DVI) 
        /// </summary>
        DS_6402HFH_B10ED_CLASS = 346,
        /// <summary>
        /// netra编码(HDMI) 
        /// </summary>
        DS_6402HFH_B10EH_CLASS = 347,
        /// <summary>
        /// 光纤接入编码
        /// </summary>
        DS_6404HFH_B10T_RX_CLASS = 348,
        /// <summary>
        /// netra高清解码
        /// </summary>
        DS_6504D_AIO_CLASS = 349,
        /// <summary>
        /// X86转码子系统
        /// </summary>
        DS_IVMST_B10_CLASS = 350,
        /// <summary>
        /// netra编码
        /// </summary>
        DS_6402_AIO_CLASS = 351,
        /// <summary>
        /// x86服务器子系统
        /// </summary>
        DS_iVMSE_AIO_CLASS = 352,
        /// <summary>
        /// 一体机
        /// </summary>
        DS_AIO_M_CLASS = 353,
        /// <summary>
        /// BNC输入编码子系统
        /// </summary>
        DS_6508HF_B10E_CLASS = 355,
        /// <summary>
        /// SDI输入编码子系统
        /// </summary>
        DS_6404HFH_B10ES_CLASS = 356,
        /// <summary>
        /// RGB输入编码子系统
        /// </summary>
        DS_6402HFH_B10ER_CLASS = 358,
        /// <summary>
        /// 光纤输入编码子系统
        /// </summary>
        DS_6404HFH_B10T_RM_CLASS = 361,
        /// <summary>
        /// BNC输出解码子系统
        /// </summary>
        DS_6516D_B10EB_CLASS = 362,
        /// <summary>
        /// SDI输出解码子系统
        /// </summary>
        DS_6516D_B10ES_CLASS = 363,
        /// <summary>
        /// BNC输入编码子系统
        /// </summary>
        DS_6508_B11E_CLASS = 365,
        /// <summary>
        /// SDI输入编码子系统
        /// </summary>
        DS_6402_B11ES_CLASS = 366,
        /// <summary>
        /// VGA输入编码子系统
        /// </summary>
        DS_6402_B11EV_CLASS = 367,
        /// <summary>
        /// RGB输入编码子系统
        /// </summary>
        DS_6402_B11ER_CLASS = 368,
        /// <summary>
        /// DVI输入编码子系统
        /// </summary>
        DS_6402_B11ED_CLASS = 369,
        /// <summary>
        /// HDMI输入编码子系统
        /// </summary>
        DS_6402_B11EH_CLASS = 370,
        /// <summary>
        /// BNC输出解码子系统
        /// </summary>
        DS_6516D_B11EB_CLASS = 371,
        /// <summary>
        /// SDI输出解码子系统
        /// </summary>
        DS_6516D_B11ES_CLASS = 372,
        /// <summary>
        /// BNC输入编码子系统
        /// </summary>
        DS_6508_B12E_CLASS = 373,
        /// <summary>
        /// SDI输入编码子系统
        /// </summary>
        DS_6402_B12ES_CLASS = 375,
        /// <summary>
        /// VGA输入编码子系统
        /// </summary>
        DS_6402_B12EV_CLASS = 376,
        /// <summary>
        /// RGB输入编码子系统
        /// </summary>
        DS_6402_B12ER_CLASS = 377,
        /// <summary>
        /// DVI输入编码子系统
        /// </summary>
        DS_6402_B12ED_CLASS = 378,
        /// <summary>
        /// HDMI输入编码子系统
        /// </summary>
        DS_6402_B12EH_CLASS = 379,
        /// <summary>
        /// BNC输出解码子系统
        /// </summary>
        DS_6516D_B12EB_CLASS = 380,
        /// <summary>
        /// 金融行业一体机X86子系统
        /// </summary>
        DS_iVMSE_AIO_8100x_CLASS = 381,
        /// <summary>
        /// 智能楼宇一体机X86子系统
        /// </summary>
        DS_iVMSE_AIO_87x_CLASS = 382,
        /// <summary>
        /// 增强型解码板_SDI(B11) 
        /// </summary>
        DS_6532D_B11ES_CLASS = 384,
        /// <summary>
        /// 增强型解码板_SDI(B12) 
        /// </summary>
        DS_6532D_B12ES_CLASS = 385,
        /// <summary>
        /// B20主控板
        /// </summary>
        DS_B20_MSU_NP = 400,
        /// <summary>
        /// SDI输入编码
        /// </summary>
        DS_6416HFH_B20S = 401,
        /// <summary>
        /// 光纤输入高清编码
        /// </summary>
        DS_6416HFH_B20_RM = 402,
        /// <summary>
        /// DVI解码
        /// </summary>
        DS_6564D_B20D = 403,
        /// <summary>
        /// HDMI解码
        /// </summary>
        DS_6564D_B20H = 404,
        /// <summary>
        /// VGA解码
        /// </summary>
        DS_6564D_B20V = 405,
        /// <summary>
        /// B20解码子系统
        /// </summary>
        DS_B20_6516D_DEV_CLASS = 406,
        /// <summary>
        /// VGA编码板
        /// </summary>
        DS_6408HFH_B20V = 407,
        /// <summary>
        /// B20主控
        /// </summary>
        DS_MMC_B20_CLASS = 408,
        /// <summary>
        /// B20主控子板
        /// </summary>
        DS_CARD_CHIP_B20_CLASS = 409,
        /// <summary>
        /// BNC解码子系统
        /// </summary>
        DS_6564D_B20B_DEV_CLASS = 410,
        /// <summary>
        /// SDI解码子系统
        /// </summary>
        DS_6564D_B20S_DEV_CLASS = 411,
        /// <summary>
        /// BNC编码子系统
        /// </summary>
        DS_6532HF_B20B_DEV_CLASS = 412,
        /// <summary>
        /// DVI编码子系统
        /// </summary>
        DS_6408HFH_B20D_DEV_CLASS = 413,
        /// <summary>
        /// HDMI编码子系统
        /// </summary>
        DS_6408HFH_B20H_DEV_CLASS = 414,
        /// <summary>
        /// X86服务器子系统
        /// </summary>
        DS_IVMSE_B20_CLASS = 415,
        /// <summary>
        /// YUV编码子系统
        /// </summary>
        DS_6402HFH_B20Y_DEV_CLASS = 416,
        /// <summary>
        /// HW编码子系统
        /// </summary>
        DS_6508HW_B20_DEV_CLASS = 417,
        /// <summary>
        /// DS_B20N128Fx_M级联板
        /// </summary>
        DS_B20N128Fx_B20_DEV_CLASS = 418,
        /// <summary>
        /// IO主控板
        /// </summary>
        DS_AIO_MCU_NP_DEV_CLASS = 419,
        /// <summary>
        /// VGA编码
        /// </summary>
        DS_6402_AIO_EV_DEV_CLASS = 420,
        /// <summary>
        /// VGA解码
        /// </summary>
        DS_6508D_AIO_EV_DEV_CLASS = 421,
        /// <summary>
        /// DVI解码
        /// </summary>
        DS_6508D_AIO_ED_DEV_CLASS = 422,
        /// <summary>
        /// HDMI解码
        /// </summary>
        DS_6508D_AIO_EH_DEV_CLASS = 423,
        /// <summary>
        /// 视频增强板
        /// </summary>
        DS_6508HD_B20F_DEV_CLASS = 424,
        /// <summary>
        /// 3G SID编码
        /// </summary>
        DS_6402HFH_B20ES_DEV_CLASS = 425,
        /// <summary>
        /// B20解码子系统
        /// </summary>
        DS_6532D_B20_DEV_CLASS = 426,
        /// <summary>
        /// X86服务器子系统
        /// </summary>
        DS_IVMST_B20_DEV_CLASS = 427,
        /// <summary>
        /// DVI双链路
        /// </summary>
        DS_6416HFH_B20DD_DEV_CLASS = 428,
        /// <summary>
        /// 相机拼接类型
        /// </summary>
        DS_6441VS_B20_DEV_CLASS = 429,
        /// <summary>
        /// TVI
        /// </summary>
        DS_6404HFH_B20T_CLASS = 431,
        /// <summary>
        /// 交换机子系统
        /// </summary>
        DS_FS22_B20_DEV_CLASS = 432,
        /// <summary>
        /// 超高清X86输入
        /// </summary>
        DS_IVMSE_B20UH_DEV_CLASS = 433,
        /// <summary>
        /// 光端机接入子系统
        /// </summary>
        DS_6404HFH_B20Fx_DEV_CLASS = 436,
        /// <summary>
        /// 级联子系统
        /// </summary>
        DS_N128x_B20Fy_CLASS = 437,
        /// <summary>
        /// 网络光纤子系统
        /// </summary>
        DS_181600F_B20_CLASS = 438,
        /// <summary>
        /// 超高清解码子系统
        /// </summary>
        DS_6904UD_B20H_CLASS = 439,
        /// <summary>
        /// B21主控
        /// </summary>
        DS_B21_MCU_NP_CLASS = 440,
        /// <summary>
        /// B21机箱 x = A / S / D
        /// </summary>
        DS_B21_S10_x_CLASS = 441,
        /// <summary>
        /// B21编码子系统
        /// </summary>
        DS_6402HFH_B21D_CLASS = 442,
        /// <summary>
        /// B21解码子系统
        /// </summary>
        DS_6508HD_B21D_CLASS = 443,
        /// <summary>
        /// B21 X86子系统
        /// </summary>
        DS_iVMSE_B21HW_CLASS = 444,
        /// <summary>
        /// C10S集中式大屏控制器
        /// </summary>
        DS_C10S = 501,
        /// <summary>
        /// SDI处理器
        /// </summary>
        DS_C10N_SDI = 551,
        /// <summary>
        /// 8路BNC处理器
        /// </summary>
        DS_C10N_BIW = 552,
        /// <summary>
        /// 显示处理器
        /// </summary>
        DS_C10N_DON = 553,
        /// <summary>
        /// TVI输入板
        /// </summary>
        DS_C10N_TVI = 554,
        /// <summary>
        /// DVI 2路输入板
        /// </summary>
        DS_C10N_DI2 = 555,
        /// <summary>
        /// DVI, HDMI, VGA输出板带音频
        /// </summary>
        DS_C10N_AUDIO_OUT = 556,
        /// <summary>
        /// DVI, HDMI, VGA输入板带音频
        /// </summary>
        DS_C10N_AUDIO_IN = 557,
        /// <summary>
        /// 分布式大屏控制器
        /// </summary>
        DS_C20N = 570,
        /// <summary>
        /// BNC输入设备
        /// </summary>
        DS_C20N_BNC = 571,
        /// <summary>
        /// DVI输入设备
        /// </summary>
        DS_C20N_DVI = 572,
        /// <summary>
        /// DP输入设备
        /// </summary>
        DS_C20N_DP = 573,
        /// <summary>
        /// 输出设备
        /// </summary>
        DS_C20N_OUT = 574,
        /// <summary>
        /// 报警主机百兆网络模块
        /// </summary>
        DS_19M00_MN = 601,
        /// <summary>
        /// 室内机
        /// </summary>
        DS_KH8302_A = 602,
        /// <summary>
        /// 门口机
        /// </summary>
        DS_KD8101_2 = 603,
        /// <summary>
        /// 管理机
        /// </summary>
        DS_KM8301 = 604,
        /// <summary>
        /// 别墅门口机
        /// </summary>
        DS_KVXXXX_XX = 605,
        /// <summary>
        /// 64-T高清解码器
        /// </summary>
        DS64XXHD_T = 701,
        /// <summary>
        /// 65万能解码器
        /// </summary>
        DS_65XXD = 703,
        /// <summary>
        /// 63-T标清解码器
        /// </summary>
        DS63XXD_T = 704,
        /// <summary>
        /// 抓屏服务器
        /// </summary>
        SCE_SERVER = 705,
        /// <summary>
        /// DS-64xxHD-S高清解码器
        /// </summary>
        DS_64XXHD_S = 706,
        /// <summary>
        /// 多功能视音频转码器
        /// </summary>
        DS_68XXT = 707,
        /// <summary>
        /// 65D-T万能解码器
        /// </summary>
        DS_65XXD_T = 708,
        /// <summary>
        /// 65HD-T万能解码器
        /// </summary>
        DS_65XXHD_T = 709,
        /// <summary>
        /// 69XXUD超高清解码器
        /// </summary>
        DS_69XXUD = 710,
        /// <summary>
        /// 65XXUD解码器
        /// </summary>
        DS_65XXUD = 711,
        /// <summary>
        /// 65XXUD_L解码器
        /// </summary>
        DS_65XXUD_L = 712,
        /// <summary>
        /// 65XXUD_T解码器
        /// </summary>
        DS_65XXUD_T = 713,
        /// <summary>
        /// LCD屏幕 解码卡
        /// </summary>
        DS_D20XX = 750,
        /// <summary>
        /// SDI矩阵
        /// </summary>
        DS_C50S = 751,
        /// <summary>
        /// LCD屏幕解码卡
        /// </summary>
        DS_D50XX = 752,
        /// <summary>
        /// LED屏发送卡
        /// </summary>
        DS_D40 = 760,
        /// <summary>
        /// 视频会议服务器
        /// </summary>
        DS_65VMXX = 770,
        /// <summary>
        /// 视频会议终端
        /// </summary>
        DS_65VTXX = 771,
        /// <summary>
        /// 视频会议一体式终端
        /// </summary>
        DS_65VTA = 772,
        /// <summary>
        /// 互动教学终端
        /// </summary>
        DS_65VT_RX = 773,
        /// <summary>
        /// 虚拟屏服务器
        /// </summary>
        DS_CS_SERVER = 800,
        /// <summary>
        /// 门禁主机
        /// </summary>
        DS_K260X = 850,
        /// <summary>
        /// 指纹一体机
        /// </summary>
        DS_K1TXXX = 851,
        /// <summary>
        /// 经济型门禁主机
        /// </summary>
        DS_K280X = 852,
        /// <summary>
        /// 经济型门禁一体机
        /// </summary>
        DS_K1T80X = 854,
        /// <summary>
        /// 汉军指纹门禁一体机
        /// </summary>
        RAC_6X00 = 856,
        /// <summary>
        /// 人员通道主机
        /// </summary>
        DS_K2602_AX = 857,
        /// <summary>
        /// 经济型指纹门禁产品
        /// </summary>
        DS_K1T803F = 858,
        /// <summary>
        /// 分布式三层架构门禁主机
        /// </summary>
        DS_K2700 = 859,
        /// <summary>
        /// 分布式三层架构就地控制器
        /// </summary>
        DS_K270X = 860,
        /// <summary>
        /// 视屏门禁一体机
        /// </summary>
        DS_K1T500S = 861,
        /// <summary>
        /// 经济型指纹门禁产品
        /// </summary>
        DS_K1A801F = 862,
        /// <summary>
        /// 人脸抓拍门禁一体机
        /// </summary>
        DS_K1T600X = 863,
        /// <summary>
        /// 梯控主控制器
        /// </summary>
        DS_K22X = 864,
        /// <summary>
        /// 梯控分控制器
        /// </summary>
        DS_K2M0016AX = 865,
        /// <summary>
        /// 立式/台式智能身份识别终端
        /// </summary>
        DS_K560XX = 870,
        /// <summary>
        /// 68M合码器
        /// </summary>
        DS_6800M = 900,
        /// <summary>
        /// 信息发布主机
        /// </summary>
        DS_68NTH = 901,
        /// <summary>
        /// 信息发布服务器
        /// </summary>
        DS_D60S = 902,
        /// <summary>
        /// 背投显示设备
        /// </summary>
        DS_D10 = 931,
        /// <summary>
        /// 光纤收发器
        /// </summary>
        DS_3K0X_NM = 951,
        /// <summary>
        /// 百兆交换机
        /// </summary>
        DS_3E2328 = 952,
        /// <summary>
        /// 屏幕服务器
        /// </summary>
        SCREEN_LINK_SERVER = 971,
        /// <summary>
        /// OPS电脑盒
        /// </summary>
        DS_D51OPSXX = 972,
        /// <summary>
        /// IP 200万一体化云台
        /// </summary>
        IP_PTSYS_MEGA200 = 1001,
        /// <summary>
        /// 鱼眼摄像机
        /// </summary>
        IPCAM_FISHEYE = 1002,
        /// <summary>
        /// 经济型鱼眼摄像机
        /// </summary>
        IPCAM_FISHEYE_E = 1003,
        /// <summary>
        /// 双目摄像机
        /// </summary>
        IPCAM_BINOCULAR = 1004,
        /// <summary>
        /// 支持365的平台的IPC CAM
        /// </summary>
        IPCAM_365 = 1010,
        /// <summary>
        /// 支持A5S的平台的IPC CAM
        /// </summary>
        IPCAM_R0 = 1011,
        /// <summary>
        /// 支持385的平台的IPC CAM
        /// </summary>
        IPCAM_R1 = 1012,
        /// <summary>
        /// 支持R2的平台的IPC CAM
        /// </summary>
        IPCAM_R2 = 1013,
        /// <summary>
        /// 支持8127的平台的IPC CAM
        /// </summary>
        IPCAM_R3 = 1014,
        /// <summary>
        /// 支持S2的平台的IPC CAM
        /// </summary>
        IPCAM_R4 = 1015,
        /// <summary>
        /// 支持365的平台的IPD CAM
        /// </summary>
        IPDOME_365 = 1110,
        /// <summary>
        /// 支持A5S的平台的IPD CAM
        /// </summary>
        IPDOME_R0 = 1111,
        /// <summary>
        /// 支持385的平台的IPD CAM
        /// </summary>
        IPDOME_R1 = 1112,
        /// <summary>
        /// 支持R2的平台的IPD CAM
        /// </summary>
        IPDOME_R2 = 1113,
        /// <summary>
        /// 支持8127的平台的IPD CAM
        /// </summary>
        IPDOME_R3 = 1114,
        /// <summary>
        /// 支持S2的平台的IPD CAM
        /// </summary>
        IPDOME_R4 = 1115,
        /// <summary>
        /// 支持8127的平台的ITCCAM
        /// </summary>
        ITCCAM_R3 = 1211,
        /// <summary>
        /// 无人机基站设备(Ummanned Aerial Vehicle – Station) 
        /// </summary>
        UAV_S = 1300,
        /// <summary>
        /// 出入口终端服务器
        /// </summary>
        TRAFFIC_ECT = 1400,
        /// <summary>
        /// 停车场服务器
        /// </summary>
        TRAFFIC_PARKING_SERVER = 1401,
        /// <summary>
        /// TME出入口控制机
        /// </summary>
        TRAFFIC_TME = 1402,
        /// <summary>
        /// 混合DVR: DS-90xxHW-ST
        /// </summary>
        DS90XXHW_ST = 2001,
        /// <summary>
        /// DS-72xxHV-SH, DS-72xxHF-SH
        /// </summary>
        DS72XXHX_SH = 2002,
        /// <summary>
        /// DS-92xxHF-ST
        /// </summary>
        DS_92XX_HF_ST = 2003,
        /// <summary>
        /// Netra DVR: DS-91xxHF-XT
        /// </summary>
        DS_91XX_HF_XT = 2004,
        /// <summary>
        /// Netra 混合DVR: DS-90xxHF-XT
        /// </summary>
        DS_90XX_HF_XT = 2005,
        /// <summary>
        /// Netra DVR: DS-73xxHX-SH
        /// </summary>
        DS_73XXHX_SH = 2006,
        /// <summary>
        /// Netra DVR: DS-72xxHFH-ST
        /// </summary>
        DS_72XXHFH_ST = 2007,
        /// <summary>
        /// DVS: DS-67xxHF-SATA
        /// </summary>
        DS_67XXHF_SATA = 2008,
        /// <summary>
        /// DVS: DS-67xxHW
        /// </summary>
        DS_67XXHW = 2009,
        /// <summary>
        /// DVS: DS-67xxHW-SATA
        /// </summary>
        DS_67XXHW_SATA = 2010,
        /// <summary>
        /// DVS: DS-67xxHF
        /// </summary>
        DS_67XXHF = 2011,
        /// <summary>
        /// DVR: DS-72xxHF-SV
        /// </summary>
        DS_72XXHF_SV = 2012,
        /// <summary>
        /// DVR: DS-72xxHW-SV
        /// </summary>
        DS_72XXHW_SV = 2013,
        /// <summary>
        /// DVR: DS-81xxHX-SH
        /// </summary>
        DS_81XXHX_SH = 2014,
        /// <summary>
        /// DVR: DS-71xxHX-SL
        /// </summary>
        DS_71XXHX_SL = 2015,
        /// <summary>
        /// DVR: DS-76xxH-ST
        /// </summary>
        DS_76XXH_ST = 2016,
        /// <summary>
        /// DVR: DS-73xxHFH-ST
        /// </summary>
        DS_73XXHFH_ST = 2017,
        /// <summary>
        /// DVR: DS-81xxHFH-ST
        /// </summary>
        DS_81XXHFH_ST = 2018,
        /// <summary>
        /// DVR: DS-72xxHFH-SL
        /// </summary>
        DS_72XXHFH_SL = 2019,
        /// <summary>
        /// 2盘位ATM
        /// </summary>
        DS_FDXXCGA_FLT = 2020,
        /// <summary>
        /// iDS-9100HF-ST/A
        /// </summary>
        IDS_91XX_HF_ST_A = 2100,
        /// <summary>
        /// iDS-9100HF-ST/B
        /// </summary>
        IDS_91XX_HF_ST_B = 2101,
        /// <summary>
        /// iDS-9000HF-ST/A
        /// </summary>
        IDS_90XX_HF_ST_A = 2102,
        /// <summary>
        /// iDS-9000HF-ST/B
        /// </summary>
        IDS_90XX_HF_ST_B = 2103,
        /// <summary>
        /// iDS-8100HF-ST/A
        /// </summary>
        IDS_81XX_HF_ST_A = 2104,
        /// <summary>
        /// iDS-8100HF-ST/B
        /// </summary>
        IDS_81XX_HF_ST_B = 2105,
        /// <summary>
        /// iDS-8000HF-ST/A
        /// </summary>
        IDS_80XX_HF_ST_A = 2106,
        /// <summary>
        /// iDS-8000HF-ST/B
        /// </summary>
        IDS_80XX_HF_ST_B = 2107,
        /// <summary>
        /// 智能混合ATM机
        /// </summary>
        IDS_8104_AHFL_ST = 2108,
        /// <summary>
        /// 垂直双目相机
        /// </summary>
        IDS_2CD6812F_C = 2109,
        /// <summary>
        ///  Netra NVR: DS-77xxN-ST
        /// </summary>
        DS_77XXN_ST = 2201,
        /// <summary>
        /// Netra NVR: DS-95xxN-ST
        /// </summary>
        DS_95XX_N_ST = 2202,
        /// <summary>
        /// Netra NVR: DS-85xxN-ST
        /// </summary>
        DS_85XX_N_ST = 2203,
        /// <summary>
        /// Netra NVR: DS-96xxN-XT
        /// </summary>
        DS_96XX_N_XT = 2204,
        /// <summary>
        /// Netra NVR: DS-76xxN-SE、DS-78xxN-SH
        /// </summary>
        DS_76XX_N_SE = 2205,
        /// <summary>
        /// Netra 审讯NVR, 包括4种类型: DS-8608SNL-SP、DS-8608SNL-ST、DS-8608SN-SP、DS-8608SN-ST, L表示带LCD, P表POE
        /// </summary>
        DS_86XXSN_SX = 2206,
        /// <summary>
        /// Netra NVR: DS-96xxN-RX
        /// </summary>
        DS_96XX_N_RX = 2207,
        /// <summary>
        /// DS-71XXN-SL 民用产品
        /// </summary>
        DS_71XXN_SL = 2208,
        /// <summary>
        ///  CS_N1_1XX, 民用事业部所用
        /// </summary>
        CS_N1_1XX = 2209,
        /// <summary>
        /// 71XX_N_SN 经济型民用产品
        /// </summary>
        DS_71XXN_SN = 2210,
        /// <summary>
        /// N1_2XX 民用事业部所用
        /// </summary>
        CS_N1_2XX = 2211,
        /// <summary>
        /// 76XX_N_SHT
        /// </summary>
        DS_76XX_N_SHT = 2212,
        /// <summary>
        /// 高新性能NVR(256路) 
        /// </summary>
        DS_96XXX_N_E = 2213,
        /// <summary>
        /// 76/78N-EX(/N/P)系列NVR, 包括4/8/16路的E1一盘位设备和8/16/32路的E2两盘位设备
        /// </summary>
        DS_76XXN_EX = 2214,
        /// <summary>
        /// 77N-E4(/N/P)系列NVR, 包括8/16/32路设备
        /// </summary>
        DS_77XXN_E4 = 2215,
        /// <summary>
        /// 86N-E8(/N/P)系列NVR, 包括8/16/32路设备
        /// </summary>
        DS_86XXN_E8 = 2216,
        /// <summary>
        /// DS_9616N_H8
        /// </summary>
        DS_9616N_H8 = 2217,
        /// <summary>
        /// 72系列无线DVR产品(其中72后面的xx表示通道数, E后面的X表示的是盘位数, G XY表示的是无线类型) 
        /// </summary>
        DS_72XXHX_EX_GXY = 2218,
        /// <summary>
        /// 76系列无线NVR产品(其中76后面的xx表示通道数, E后面的X表示的是盘位数, G XY表示的是无线类型) 
        /// </summary>
        DS_76XXN_EX_GXY = 2219,
        /// <summary>
        /// XVR: 72HGH-SH系列4路
        /// </summary>
        DS_72XXHXH_SH_21 = 2220,
        /// <summary>
        /// XVR: 72HGH-SH系列8路16路、72HQH-SH系列
        /// </summary>
        DS_72XXHXH_SH_31 = 2221,
        /// <summary>
        /// XVR: 73HGH-SH系列、73HQH-SH系列
        /// </summary>
        DS_73XXHXH_SH_31 = 2222,
        /// <summary>
        /// XVR: 81HGH-SH系列、81HQH-SH系列
        /// </summary>
        DS_81XXHXH_SH_31 = 2223,
        /// <summary>
        ///  XVR: 71HGH-SH系列4路
        /// </summary>
        DS_71XXHXH_SH_21 = 2224,
        /// <summary>
        /// XVR: 71HGH-SH系列8路16路、71HQH-SH系列
        /// </summary>
        DS_71XXHXH_SH_31 = 2225,
        /// <summary>
        /// 便携式主机
        /// </summary>
        DS_NBXX_N_E1_X = 2226,
        /// <summary>
        /// 96N-Fx系列NVR, 包括8/16/32路设备
        /// </summary>
        DS_96XXN_FX = 2230,
        /// <summary>
        /// 86N-Fx系列NVR, 包括8/16/32路设备
        /// </summary>
        DS_86XXN_FX = 2231,
        /// <summary>
        /// 96xxxN-Hx系列NVR
        /// </summary>
        DS_96XXXN_HX = 2232,
        /// <summary>
        /// 86N_I系列NVR
        /// </summary>
        DS_86XXN_I = 2233,
        /// <summary>
        /// 77N_I系列NVR
        /// </summary>
        DS_77XX_N_I = 2234,
        /// <summary>
        /// 76N_I系列NVR
        /// </summary>
        DS_76XX_N_I = 2235,
        /// <summary>
        /// 78N_I系列NVR
        /// </summary>
        DS_78XX_N_I = 2236,
        /// <summary>
        /// 96xxxN-Ix系列NVR(DS-96128N-I16、DS-96128N-I24、DS-96256N-I16、DS-96256N-I24) 
        /// </summary>
        DS_96XXXN_IX = 2237,
        /// <summary>
        /// DS-9016HQH-XT
        /// </summary>
        DS_90XXHXH_XT = 2238,
        /// <summary>
        /// iVMS-4200的存储服务器
        /// </summary>
        PCNVR_IVMS_4200 = 2301,
        /// <summary>
        /// IVMS-6200 交通诱导分析仪
        /// </summary>
        IVMS_6200_TP = 2401,
        /// <summary>
        /// IVMS-6200 交通取证分析仪
        /// </summary>
        IVMS_6200_TF = 2402,
        /// <summary>
        /// iVMS-6200(/D) 
        /// </summary>
        IVMS_6200_D = 2403,
        /// <summary>
        /// iDS-81xxAHW-ST
        /// </summary>
        IDS_81XXAHW_ST = 2405,
        /// <summary>
        /// iDS-81xxAHW-SP
        /// </summary>
        IDS_81XXAHW_SP = 2406,
        /// <summary>
        /// iDS-81xxAHWL-ST
        /// </summary>
        IDS_81XXAHWL_ST = 2407,
        /// <summary>
        /// iDS-81xxAHWL-SP
        /// </summary>
        IDS_81XXAHWL_SP = 2408,
        /// <summary>
        /// iDS_9616N_H8
        /// </summary>
        IDS_9616N_H8 = 2409,
        /// <summary>
        /// IVMS_6200_SMD
        /// </summary>
        IVMS_6200_SMD = 2500,
        /// <summary>
        /// 81HW-ST混合ATM DVR
        /// </summary>
        DS_81XXAHW_ST = 2501,
        /// <summary>
        /// 81HW-SP混合ATM DVR
        /// </summary>
        DS_81XXAHW_SP = 2502,
        /// <summary>
        /// 81AHWL-ST混合ATM DVR
        /// </summary>
        DS_81XXAHWL_ST = 2503,
        /// <summary>
        /// 81AHWL-SP混合ATM DVR
        /// </summary>
        DS_81XXAHWL_SP = 2504,
        /// <summary>
        /// TVI ATM机
        /// </summary>
        DS_81XXAHGH_E4 = 2601,
        /// <summary>
        /// KY2017平台审讯机DS-8104SHFH(L)-K4/4P
        /// </summary>
        DS_81XX_SHXL_K4 = 6101,
        /// <summary>
        /// 标准庭审主机DS-8116THFHL-F4
        /// </summary>
        DS_8116THFHL_F4 = 6201,
        /// <summary>
        /// DS_81XXAHQ_E4(TVI ATM) 
        /// </summary>
        DS_81XXAHQ_E4 = 6301,
        /// <summary>
        /// IDS_81XXAHQ_E4(智能TVI ATM) 
        /// </summary>
        IDS_81XXAHQ_E4 = 6302,
        /// <summary>
        /// 超脑智能NVR(人体识别) 
        /// </summary>
        IDS_96XX_NX_S = 7502,
        /// <summary>
        /// 超脑加油站NVR
        /// </summary>
        IDS_96XX_NX_V = 7503,
        /// <summary>
        /// 人脸超脑智能NVR
        /// </summary>
        IDS_96XX_NX_FA = 7504,
        /// <summary>
        /// 86系列安全帽检测NVR产品: IDS-8632NX-I8/B
        /// </summary>
        IDS_86XX_NX_IX_B = 7505,
        /// <summary>
        /// 全景细节相机
        /// </summary>
        iDS_PT = 8451,
        /// <summary>
        /// 监所智能服务器
        /// </summary>
        DS_IEXX_E_J = 11501,
        /// <summary>
        /// 67系列录播NVS产品
        /// </summary>
        IDS_67XX_NX_L = 12502,
        /// <summary>
        /// 录播NVS行业专业产品
        /// </summary>
        IDS_ENIXX_XHE = 12503,
        /// <summary>
        /// 67系列安全帽检测NVS产品: iDS-6708NX/B
        /// </summary>
        IDS_67XX_NX_B = 12505,
        /// <summary>
        /// 脸谱单机
        /// </summary>
        DS_IE63XX_E_FA = 13001,
        /// <summary>
        /// 猎鹰服务器
        /// </summary>
        DS_GPKIA01XX = 13002,
        /// <summary>
        /// 脸谱纯分析
        /// </summary>
        DS_IC01XX_F = 13003,
        /// <summary>
        /// 人脸静态数据服务器
        /// </summary>
        DS_DS_FS = 13004,
        /// <summary>
        /// 抓拍检测服务器
        /// </summary>
        DS_DS_FD = 13005,
        /// <summary>
        /// 刀锋
        /// </summary>
        DS_GPKIB01XX_V = 13006,
        /// <summary>
        /// 模型对比服务器
        /// </summary>
        DS_I01CP_CD = 13007,
        /// <summary>
        /// 智能锁盒子
        /// </summary>
        DS_LNX_RF = 13501
    }

    /// <summary>
    /// 报警类型
    /// </summary>
    public enum AlarmTypeEnum
    {
        #region 智能报警
        /// <summary>
        /// 异常行为识别信息 <see cref="NET_VCA_RULE_ALARM"/>
        /// </summary>
        COMM_ALARM_RULE = 0x1102,
        /// <summary>
        /// 客流量统计报警上传 <see cref="NET_DVR_PDC_ALRAM_INFO"/>
        /// </summary>
        COMM_ALARM_PDC = 0x1103,
        /// <summary>
        /// 人脸抓拍结果 <see cref="NET_VCA_FACESNAP_RESULT"/>
        /// </summary>
        COMM_UPLOAD_FACESNAP_RESULT = 0x1112,
        /// <summary>
        /// 人脸侦测报警信息 <see cref="NET_DVR_FACE_DETECTION"/>
        /// </summary>
        COMM_ALARM_FACE_DETECTION = 0x4010,
        /// <summary>
        /// 人脸非授权名单比对结果信息 <see cref="NET_VCA_FACESNAP_MATCH_ALARM"/>
        /// </summary>
        COMM_SNAP_MATCH_ALARM = 0x2902,
        /// <summary>
        /// 人脸比对报警(Json数据透传方式) <see cref="NET_VCA_FACESNAP_RAWDATA_ALARM"/>
        /// </summary>
        COMM_FACESNAP_RAWDATA_ALARM = 0x6015,
        /// <summary>
        /// VQD报警信息 <see cref="NET_DVR_VQD_ALARM"/>
        /// </summary>
        COMM_ALARM_VQD_EX = 0x1116,
        /// <summary>
        /// 诊断服务器VQD报警信息 <see cref="NET_DVR_DIAGNOSIS_UPLOAD"/>
        /// </summary>
        COMM_DIAGNOSIS_UPLOAD = 0x5100,
        /// <summary>
        /// VQD诊断报警信息 <see cref="NET_DVR_VQD_DIAGNOSE_INFO"/>
        /// </summary>
        COMM_ALARM_VQD = 0x6000,
        /// <summary>
        /// 场景变更报警信息 <see cref="NET_DVR_SCENECHANGE_DETECTION_RESULT"/>
        /// </summary>
        COMM_SCENECHANGE_DETECTION_UPLOAD = 0x1130,
        /// <summary>
        /// 压线报警信息 <see cref="NET_DVR_CROSSLINE_ALARM"/>
        /// </summary>
        COMM_CROSSLINE_ALARM = 0x1131,
        /// <summary>
        /// 声音报警信息 <see cref="NET_DVR_AUDIOEXCEPTION_ALARM"/>
        /// </summary>
        COMM_ALARM_AUDIOEXCEPTION = 0x1150,
        /// <summary>
        /// 虚焦报警信息 <see cref="NET_DVR_DEFOCUS_ALARM"/>
        /// </summary>
        COMM_ALARM_DEFOCUS = 0x1151,
        /// <summary>
        /// 热度图报警信息 <see cref="NET_DVR_HEATMAP_RESULT"/>
        /// </summary>
        COMM_UPLOAD_HEATMAP_RESULT = 0x4008,
        /// <summary>
        /// 热度图按人数统计数据上传事件 <see cref="NET_DVR_HEATMAP_RESULT_PDC"/>
        /// </summary>
        COMM_UPLOAD_HEATMAP_RESULT_PDC = 0x4018,
        /// <summary>
        /// 热度图按人员停留时间统计数据上传事件 <see cref="NET_DVR_HEATMAP_RESULT"/>
        /// </summary>
        COMM_UPLOAD_HEATMAP_RESULT_DURATION = 0x4019,
        /// <summary>
        /// 路口分析热度值结果上传 <see cref="NET_DVR_HEATMAP_RESULT"/>
        /// </summary>
        COMM_UPLOAD_HEATMAP_RESULT_INTERSECTION = 0x4020,
        /// <summary>
        /// 人脸测温报警信息 <see cref="COMM_FACE_THERMOMETRY_ALARM"/>
        /// </summary>
        COMM_FACE_THERMOMETRY_ALARM = 0x4994,
        /// <summary>
        /// 开关灯检测报警信息 <see cref="NET_DVR_SWITCH_LAMP_ALARM"/>
        /// </summary>
        COMM_SWITCH_LAMP_ALARM = 0x6002,
        #endregion

        #region 智能交通
        /// <summary>
        /// 交通取证报警信息 <see cref="NET_DVR_TFS_ALARM"/>
        /// </summary>
        COMM_ALARM_TFS = 0x1113,
        /// <summary>
        /// 交通参数统计报警信息(扩展) <see cref="NET_DVR_TPS_ALARM_V41"/>
        /// </summary>
        COMM_ALARM_TPS_V41 = 0x1114,
        /// <summary>
        /// 交通事件报警信息扩展 <see cref="NET_DVR_AID_ALARM_V41"/>
        /// </summary>
        COMM_ALARM_AID_V41 = 0x1115,
        /// <summary>
        /// 交通抓拍结果(车辆、车牌识别及抓拍图片)上传 <see cref="NET_ITS_PLATE_RESULT"/>
        /// </summary>
        COMM_ITS_PLATE_RESULT = 0x3050,
        /// <summary>
        /// 交通统计数据 <see cref="NET_ITS_TRAFFIC_COLLECT"/>
        /// </summary>
        COMM_ITS_TRAFFIC_COLLECT = 0x3051,
        /// <summary>
        /// 出入口车辆抓拍数据 <see cref="NET_ITS_GATE_VEHICLE"/>
        /// </summary>
        COMM_ITS_GATE_VEHICLE = 0x3052,
        /// <summary>
        /// 出入口人脸抓拍数据 <see cref="NET_ITS_GATE_FACE"/>
        /// </summary>
        COMM_ITS_GATE_FACE = 0x3053,
        /// <summary>
        /// 出入口过车收费明细 <see cref="NET_ITS_PASSVEHICLE_COST_ITEM"/>
        /// </summary>
        COMM_ITS_GATE_COSTITEM = 0x3054,
        /// <summary>
        /// 出入口交接班数据 <see cref="NET_ITS_HANDOVER_INFO"/>
        /// </summary>
        COMM_ITS_GATE_HANDOVER = 0x3055,
        /// <summary>
        /// 停车场数据上传 <see cref="NET_ITS_PARK_VEHICLE"/>
        /// </summary>
        COMM_ITS_PARK_VEHICLE = 0x3056,
        /// <summary>
        /// 车辆非授权名单报警上传 <see cref="NET_ITS_ECT_BLOCKLIST"/>
        /// </summary>
        COMM_ITS_BLOCKLIST_ALARM = 0x3057,
        /// <summary>
        /// 车辆授权和非授权名单数据需要同步报警上传 <see cref="NET_DVR_VEHICLE_CONTROL_LIST_DSALARM"/>
        /// </summary>
        COMM_VEHICLE_CONTROL_LIST_DSALARM = 0x3058,
        /// <summary>
        /// 授权和非授权名单车辆报警上传 <see cref="NET_DVR_VEHICLE_CONTROL_ALARM"/>
        /// </summary>
        COMM_VEHICLE_CONTROL_ALARM = 0x3059,
        /// <summary>
        /// 消防报警上传 <see cref="NET_DVR_FIRE_ALARM"/>
        /// </summary>
        COMM_FIRE_ALARM = 0x3060,
        /// <summary>
        /// 车辆二次识别结果上传 <see cref="NET_DVR_VEHICLE_RECOG_RESULT"/>
        /// </summary>
        COMM_VEHICLE_RECOG_RESULT = 0x3062,
        /// <summary>
        /// 车牌上传 <see cref="NET_DVR_PLATE_RESULT_V50"/>
        /// </summary>
        COMM_PLATE_RESULT_V50 = 0x3063,
        /// <summary>
        /// 信号灯异常检测上传 <see cref="NET_DVR_SIGNALLAMP_DETCFG"/>
        /// </summary>
        COMM_SIGNAL_LAMP_ABNORMAL = 0x3080,
        /// <summary>
        /// TPS实时过车数据上传 <see cref="NET_DVR_TPS_REAL_TIME_INFO"/>
        /// </summary>
        COMM_ALARM_TPS_REAL_TIME = 0x3081,
        /// <summary>
        /// TPS统计过车数据上传 <see cref="NET_DVR_TPS_STATISTICS_INFO"/>
        /// </summary>
        COMM_ALARM_TPS_STATISTICS = 0x3082,
        /// <summary>
        /// 实时状态检测结果 <see cref="NET_ITC_STATUS_DETECT_RESULT"/>
        /// </summary>
        COMM_ITC_STATUS_DETECT_RESULT = 0x2810,
        /// <summary>
        /// 路口设备异常报警信息 <see cref="NET_ITS_ROADINFO"/>
        /// </summary>
        COMM_ITS_ROAD_EXCEPTION = 0x4500,
        /// <summary>
        /// 指示灯外控报警信息 <see cref="NET_DVR_EXTERNAL_CONTROL_ALARM"/>
        /// </summary>
        COMM_ITS_EXTERNAL_CONTROL_ALARM = 0x4520,
        #endregion

        #region 报警主机
        /// <summary>
        /// 模拟量数据实时信息 <see cref="NET_DVR_SENSOR_ALARM"/>
        /// </summary>
        COMM_SENSOR_VALUE_UPLOAD = 0x1120,
        /// <summary>
        /// 模拟量报警信息 <see cref="NET_DVR_SENSOR_ALARM"/>
        /// </summary>
        COMM_SENSOR_ALARM = 0x1121,
        /// <summary>
        /// 开关量报警信息 <see cref="NET_DVR_SWITCH_ALARM"/>
        /// </summary>
        COMM_SWITCH_ALARM = 0x1122,
        /// <summary>
        /// 故障报警信息 <see cref="NET_DVR_ALARMHOST_EXCEPTION_ALARM"/>
        /// </summary>
        COMM_ALARMHOST_EXCEPTION = 0x1123,
        /// <summary>
        /// 防护舱状态信息 <see cref="NET_DVR_ALARMHOST_SAFETYCABINSTATE"/>
        /// </summary>
        COMM_ALARMHOST_SAFETYCABINSTATE = 0x1125,
        /// <summary>
        /// 报警主机报警输出口或警号状态信息 <see cref="NET_DVR_ALARMHOST_ALARMOUTSTATUS"/>
        /// </summary>
        COMM_ALARMHOST_ALARMOUTSTATUS = 0x1126,
        /// <summary>
        /// 报警主机CID报告报警上传 <see cref="NET_DVR_CID_ALARM"/>
        /// </summary>
        COMM_ALARMHOST_CID_ALARM = 0x1127,
        /// <summary>
        /// 报警主机RS485外接设备报警信息 <see cref="NET_DVR_485_EXTERNAL_DEVICE_ALARMINFO"/>
        /// </summary>
        COMM_ALARMHOST_EXTERNAL_DEVICE_ALARM = 0x1128,
        /// <summary>
        /// 报警数据信息 <see cref="NET_DVR_ALARMHOST_DATA_UPLOAD"/>
        /// </summary>
        COMM_ALARMHOST_DATA_UPLOAD = 0x1129,
        /// <summary>
        /// 无线网络信息上传 <see cref="NET_DVR_ALARMWIRELESSINFO"/>
        /// </summary>
        COMM_ALARM_WIRELESS_INFO = 0x122b,
        #endregion

        #region 明眸门禁
        /// <summary>
        /// 门禁主机报警信息 <see cref="NET_DVR_ACS_ALARM_INFO"/>
        /// </summary>
        COMM_ALARM_ACS = 0x5002,
        /// <summary>
        /// 门禁身份证刷卡信息 <see cref="NET_DVR_ID_CARD_INFO_ALARM"/>
        /// </summary>
        COMM_ID_INFO_ALARM = 0x5200,
        /// <summary>
        /// 门禁通行人数信息 <see cref="NET_DVR_PASSNUM_INFO_ALARM"/>
        /// </summary>
        COMM_PASSNUM_INFO_ALARM = 0x5201,
        #endregion

        #region 可视对讲
        /// <summary>
        /// 可视对讲事件记录信息 <see cref="NET_DVR_VIDEO_INTERCOM_EVENT"/>
        /// </summary>
        COMM_UPLOAD_VIDEO_INTERCOM_EVENT = 0x1132,
        /// <summary>
        /// 可视对讲报警信息 <see cref="NET_DVR_VIDEO_INTERCOM_ALARM"/>
        /// </summary>
        COMM_ALARM_VIDEO_INTERCOM = 0x1133,
        #endregion

        #region 其他设备报警
        /// <summary>
        /// 移动侦测、视频丢失、遮挡、IO信号量等报警信息上传(V3.0以下版本支持的设备) <see cref="NET_DVR_ALARMINFO"/>
        /// </summary>
        COMM_ALARM = 0x1100,
        /// <summary>
        /// 移动侦测、视频丢失、遮挡、IO信号量等报警信息上传(V3.0以上版本支持的设备) <see cref="NET_DVR_ALARMINFO_V30"/>
        /// </summary>
        COMM_ALARM_V30 = 0x4000,
        /// <summary>
        /// 移动侦测、视频丢失、遮挡、IO信号量等报警信息, 报警数据为可变长 <see cref=""NET_DVR_ALARMINFO_V40/>
        /// </summary>
        COMM_ALARM_V40 = 0x4007,
        /// <summary>
        /// 混合型DVR、NVR等在IPC接入配置改变时的报警信息 <see cref="NET_DVR_IPALARMINFO"/>
        /// </summary>
        COMM_IPCCFG = 0x4001,
        /// <summary>
        /// 混合型DVR、NVR等在IPC接入配置改变时的报警信息(扩展) <see cref="NET_DVR_IPALARMINFO_V31"/>
        /// </summary>
        COMM_IPCCFG_V31 = 0x4002,
        /// <summary>
        /// PIR报警、无线报警、呼救报警信息 <see cref="NET_IPC_AUXALARM_RESULT"/>
        /// </summary>
        COMM_IPC_AUXALARM_RESULT = 0x2820,
        /// <summary>
        /// CVR设备报警信息, 由于通道值大于256而扩展 <see cref="NET_DVR_ALARMINFO_DEV"/>
        /// </summary>
        COMM_ALARM_DEVICE = 0x4004,
        /// <summary>
        /// CVR设备报警信息扩展(增加报警信息子结构) <see cref="NET_DVR_ALARMINFO_DEV_V40"/>
        /// </summary>
        COMM_ALARM_DEVICE_V40 = 0x4009,
        /// <summary>
        ///  CVR外部报警信息 <see cref="NET_DVR_CVR_ALARM"/>
        /// </summary>
        COMM_ALARM_CVR = 0x4005,
        /// <summary>
        /// ATM DVR交易信息 <see cref="NET_DVR_TRADEINFO"/>
        /// </summary>
        COMM_TRADEINFO = 0x1500,
        /// <summary>
        /// 热备异常报警(N+1模式异常报警)信息 <see cref="NET_DVR_ALARM_HOT_SPARE"/>
        /// </summary>
        COMM_ALARM_HOT_SPARE = 0x4006,
        /// <summary>
        /// 按钮按下报警信息(IP可视对讲主机) <see cref="NET_BUTTON_DOWN_EXCEPTION_ALARM"/>
        /// </summary>
        COMM_ALARM_BUTTON_DOWN_EXCEPTION = 0x1152,
        /// <summary>
        /// LCD屏幕报警信息 <see cref="NET_DVR_LCD_ALARM"/>
        /// </summary>
        COMM_ALARM_LCD = 0x5011,
        /// <summary>
        /// 解码器智能解码报警信息 <see cref="NET_DVR_DEC_VCA_ALARM"/>
        /// </summary>
        COMM_ALARM_DEC_VCA = 0x5010,
        /// <summary>
        /// 存储智能检测报警信息 <see cref="NET_DVR_STORAGE_DETECTION_ALARM"/>
        /// </summary>
        COMM_ALARM_STORAGE_DETECTION = 0x4015,
        /// <summary>
        /// 会议终端会议呼叫报警信息 <see cref="NET_DVR_CONFERENCE_CALL_ALARM"/>
        /// </summary>
        COMM_CONFERENCE_CALL_ALARM = 0x5012,
        /// <summary>
        /// 审讯主机报警信息 <see cref="NET_DVR_INQUEST_ALARM"/>
        /// </summary>
        COMM_INQUEST_ALARM = 0x6005,
        /// <summary>
        /// 鹰眼全景联动到位事件信息
        /// </summary>
        COMM_PANORAMIC_LINKAGE_ALARM = 0x5213
        #endregion
    }

    /// <summary>
    /// 配置类型
    /// </summary>
    public enum NET_SDK_LOCAL_CFG_TYPE
    {
        /// <summary>
        /// 本地TCP端口绑定配置 <see cref="NET_DVR_LOCAL_TCP_PORT_BIND_CFG"/>
        /// </summary>
        NET_SDK_LOCAL_CFG_TYPE_TCP_PORT_BIND = 0,
        /// <summary>
        /// 本地UDP端口绑定配置 <see cref="NET_DVR_LOCAL_UDP_PORT_BIND_CFG"/>
        /// </summary>
        NET_SDK_LOCAL_CFG_TYPE_UDP_PORT_BIND = 1,
        /// <summary>
        /// 内存池本地配置 <see cref="NET_DVR_LOCAL_MEM_POOL_CFG"/>
        /// </summary>
        NET_SDK_LOCAL_CFG_TYPE_MEM_POOL = 2,
        /// <summary>
        /// 按模块配置超时时间 <see cref="NET_DVR_LOCAL_MODULE_RECV_TIMEOUT_CFG"/>
        /// </summary>
        NET_SDK_LOCAL_CFG_TYPE_MODULE_RECV_TIMEOUT = 3,
        /// <summary>
        /// 是否使用能力集解析库 <see cref="NET_DVR_LOCAL_ABILITY_PARSE_CFG"/>
        /// </summary>
        NET_SDK_LOCAL_CFG_TYPE_ABILITY_PARSE = 4,
        /// <summary>
        /// 对讲模式配置 <see cref="NET_DVR_LOCAL_TALK_MODE_CFG"/>
        /// </summary>
        NET_SDK_LOCAL_CFG_TYPE_TALK_MODE = 5,
        /// <summary>
        /// 心跳交互间隔时间配置 <see cref="NET_DVR_LOCAL_CHECK_DEV"/>
        /// </summary>
        NET_SDK_LOCAL_CFG_TYPE_CHECK_DEV = 10,
        /// <summary>
        /// 配置字符编码相关处理回调 <see cref="NET_DVR_LOCAL_BYTE_ENCODE_CONVERT"/>
        /// </summary>
        NET_SDK_LOCAL_CFG_TYPE_CHAR_ENCODE = 13,
        /// <summary>
        /// 日志参数配置 <see cref="NET_DVR_LOCAL_LOG_CFG"/>
        /// </summary>
        NET_DVR_LOCAL_CFG_TYPE_LOG = 15,
        /// <summary>
        /// 通用参数配置 <see cref="NET_DVR_LOCAL_GENERAL_CFG"/>
        /// </summary>
        NET_DVR_LOCAL_CFG_TYPE_GENERAL = 17,
        /// <summary>
        /// PTZ是否接收设备返回配置 <see cref="NET_DVR_LOCAL_CFG_TYPE_PTZ"/>
        /// </summary>
        NET_DVR_LOCAL_CFG_TYPE_PTZ = 18,
        /// <summary>
        /// 证书相关参数配置 <see cref="NET_DVR_LOCAL_CERTIFICATION"/>
        /// </summary>
        NET_SDK_LOCAL_CFG_CERTIFICATION = 20,
        /// <summary>
        /// 端口复用参数配置 <see cref="NET_DVR_LOCAL_PORT_MULTI_CFG"/>
        /// </summary>
        NET_SDK_LOCAL_CFG_PORT_MULTIPLEX = 21
    }

    /// <summary>
    /// 车牌种类枚举
    /// </summary>
    public enum VCA_PLATE_TYPE
    {
        /// <summary>
        /// 标准民用车与军车车牌
        /// </summary>
        [Description("标准民用车与军车车牌")]
        VCA_STANDARD92_PLATE = 0,
        /// <summary>
        /// 民用车牌
        /// </summary>
        [Description("民用车牌")]
        VCA_STANDARD02_PLATE = 1,
        /// <summary>
        /// 武警车车牌
        /// </summary>
        [Description("武警车车牌")]
        VCA_WJPOLICE_PLATE = 2,
        /// <summary>
        /// 警车车牌
        /// </summary>
        [Description("警车车牌")]
        VCA_JINGCHE_PLATE = 3,
        /// <summary>
        /// 民用车双行尾牌
        /// </summary>
        [Description("民用车双行尾牌")]
        STANDARD92_BACK_PLATE = 4,
        /// <summary>
        /// 使馆车牌
        /// </summary>
        [Description("使馆车牌")]
        VCA_SHIGUAN_PLATE = 5,
        /// <summary>
        /// 农用车车牌
        /// </summary>
        [Description("农用车车牌")]
        VCA_NONGYONG_PLATE = 6,
        /// <summary>
        /// 摩托车车牌
        /// </summary>
        [Description("摩托车车牌")]
        VCA_MOTO_PLATE = 7,
        /// <summary>
        /// 新能源车牌
        /// </summary>
        [Description("新能源车牌")]
        WhiteOnRed = 8,
        /// <summary>
        /// 领事馆车牌
        /// </summary>
        [Description("领事馆车牌")]
        VCA_CONSULATE_PLATE = 9,
        /// <summary>
        /// 应急车牌
        /// </summary>
        [Description("应急车牌")]
        VCA_EMERGENCY_PLATE = 10,
        /// <summary>
        /// 运输车 
        /// </summary>
        [Description("运输车")]
        TRANSPORT_PLATE = 0x20,
        /// <summary>
        /// 商用车 
        /// </summary>
        [Description("商用车")]
        COMMERCIAL_PLATE = 0x21,
        /// <summary>
        /// 私家车
        /// </summary>
        [Description("私家车")]
        PRIVATE_PLATE = 0x22,
        /// <summary>
        /// 教练车
        /// </summary>
        [Description("教练车")]
        LEARNING_PLATE = 0x23,
        /// <summary>
        /// 使馆车
        /// </summary>
        [Description("使馆车")]
        CD_PLATE = 0x24,
        /// <summary>
        /// 使馆车
        /// </summary>
        [Description("使馆车")]
        CC_PLATE = 0x25,
        /// <summary>
        /// 军车
        /// </summary>
        [Description("军车")]
        ARMY_PLATE = 0x26,
        /// <summary>
        /// PROTOCOL
        /// </summary>
        [Description("PROTOCOL")]
        PROTOCOL_PLATE = 0x27,
        /// <summary>
        /// 政府车
        /// </summary>
        [Description("政府车")]
        GOVERNMENT_PLATE = 0x28,
        /// <summary>
        /// EXPORT
        /// </summary>
        [Description("EXPORT")]
        EXPORT_PLATE = 0x29,
        /// <summary>
        /// 出租车 
        /// </summary>
        [Description("出租车")]
        TAXI_PLATE = 0x2A,
        /// <summary>
        /// TESTING
        /// </summary>
        [Description("TESTING")]
        TESTING_PLATE = 0x2B,
        /// <summary>
        /// TRANSFER
        /// </summary>
        [Description("TRANSFER")]
        TRANSFER_PLATE = 0x2C,
        /// <summary>
        /// 货车
        /// </summary>
        [Description("货车")]
        TRUCK_PLATE = 0x2D,
        /// <summary>
        /// 公交车
        /// </summary>
        [Description("公交车")]
        BUS_PLATE = 0x2E,
        /// <summary>
        /// PUBLIC
        /// </summary>
        [Description("PUBLIC")]
        PUBLIC_PLATE = 0x2F,
        /// <summary>
        /// PUBLIC TRANSFER
        /// </summary>
        [Description("PUBLIC TRANSFER")]
        PUB_TRANS_PLATE = 0x30,
        /// <summary>
        /// PRIVATE TRANSPORT
        /// </summary>
        [Description("PRIVATE TRANSPORT")]
        PRI_TRANS_PLATE = 0x31,
        /// <summary>
        /// 未知
        /// </summary>
        [Description("未知")]
        UNKNOWN_PLATE = 0xff,
    }

    /// <summary>
    /// 车牌类型枚举类型
    /// </summary>
    public enum VCA_PLATE_COLOR
    {
        /// <summary>
        /// 蓝色车牌
        /// </summary>
        [Description("蓝色车牌")]
        VCA_BLUE_PLATE = 0,
        /// <summary>
        /// 黄色车牌
        /// </summary>
        [Description("黄色车牌")]
        VCA_YELLOW_PLATE = 1,
        /// <summary>
        /// 白色车牌
        /// </summary>
        [Description("白色车牌")]
        VCA_WHITE_PLATE = 2,
        /// <summary>
        /// 黑色车牌
        /// </summary>
        [Description("黑色车牌")]
        VCA_BLACK_PLATE = 3,
        /// <summary>
        /// 绿色车牌
        /// </summary>
        [Description("绿色车牌")]
        VCA_GREEN_PLATE = 4,
        /// <summary>
        /// 民航黑色车牌
        /// </summary>
        [Description("民航黑色车牌")]
        VCA_BKAIR_PLATE = 5,
        /// <summary>
        /// 其他 
        /// </summary>
        [Description("其他 ")]
        VCA_OTHER = 0xff,
    }

    /// <summary>
    /// 异常行为识别事件类型枚举
    /// </summary>
    public enum VCA_RULE_EVENT_TYPE_EX : ushort
    {
        /// <summary>
        /// 穿越警戒面（越界侦测） 
        /// </summary>
        ENUM_VCA_EVENT_TRAVERSE_PLANE = 1,
        /// <summary>
        /// 目标进入区域，支持区域规则 
        /// </summary>
        ENUM_VCA_EVENT_ENTER_AREA = 2,
        /// <summary>
        /// 目标离开区域，支持区域规则 
        /// </summary>
        ENUM_VCA_EVENT_EXIT_AREA = 3,
        /// <summary>
        /// 周界入侵（区域入侵侦测），支持区域规则
        /// </summary>
        ENUM_VCA_EVENT_INTRUSION = 4,
        /// <summary>
        /// 徘徊，支持区域规则 
        /// </summary>
        ENUM_VCA_EVENT_LOITER = 5,
        /// <summary>
        /// 丢包捡包，支持区域规则
        /// </summary>
        ENUM_VCA_EVENT_LEFT_TAKE = 6,
        /// <summary>
        /// 停车，支持区域规则
        /// </summary>
        ENUM_VCA_EVENT_PARKING = 7,
        /// <summary>
        /// 快速移动(奔跑)，支持区域规则
        /// </summary>
        ENUM_VCA_EVENT_RUN = 8,
        /// <summary>
        /// 区域内人员密度，支持区域规则，人员聚集度超过设置的阈值时设备上传报警信息 
        /// </summary>
        ENUM_VCA_EVENT_HIGH_DENSITY = 9,
        /// <summary>
        /// 剧烈运动检测
        /// </summary>
        ENUM_VCA_EVENT_VIOLENT_MOTION = 10,
        /// <summary>
        /// 攀高检测
        /// </summary>
        ENUM_VCA_EVENT_REACH_HIGHT = 11,
        /// <summary>
        /// 起身检测
        /// </summary>
        ENUM_VCA_EVENT_GET_UP = 12,
        /// <summary>
        /// 物品遗留
        /// </summary>
        ENUM_VCA_EVENT_LEFT = 13,
        /// <summary>
        /// 物品拿取
        /// </summary>
        ENUM_VCA_EVENT_TAKE = 14,
        /// <summary>
        /// 高危岗位异常-离岗
        /// </summary>
        ENUM_VCA_EVENT_LEAVE_POSITION = 15,
        /// <summary>
        /// 尾随
        /// </summary>
        ENUM_VCA_EVENT_TRAIL = 16,
        /// <summary>
        /// 重点人员起身检测
        /// </summary>
        ENUM_VCA_EVENT_KEY_PERSON_GET_UP = 17,
        /// <summary>
        /// 起立检测
        /// </summary>
        ENUM_VCA_EVENT_STANDUP = 18,
        /// <summary>
        /// 倒地检测
        /// </summary>
        ENUM_VCA_EVENT_FALL_DOWN = 20,
        /// <summary>
        /// 声强突变检测
        /// </summary>
        ENUM_VCA_EVENT_AUDIO_ABNORMAL = 21,
        /// <summary>
        /// 折线攀高 
        /// </summary>
        ENUM_VCA_EVENT_ADV_REACH_HEIGHT = 22,
        /// <summary>
        /// 目标区域滞留超时
        /// </summary>
        ENUM_VCA_EVENT_TOILET_TARRY = 23,
        /// <summary>
        /// 放风场滞留
        /// </summary>
        ENUM_VCA_EVENT_YARD_TARRY = 24,
        /// <summary>
        /// 折线警戒面
        /// </summary>
        ENUM_VCA_EVENT_ADV_TRAVERSE_PLANE = 25,
        /// <summary>
        /// 授课(文教) 
        /// </summary>
        ENUM_VCA_EVENT_LECTURE = 26,
        /// <summary>
        /// 回答问题(文教) 
        /// </summary>
        ENUM_VCA_EVENT_ANSWER = 27,
        /// <summary>
        /// 人靠近ATM（仅在ATM_PANEL模式下支持）
        /// </summary>
        ENUM_VCA_EVENT_HUMAN_ENTER = 29,
        /// <summary>
        /// 操作超时（仅在ATM_PANEL模式下支持）
        /// </summary>
        ENUM_VCA_EVENT_OVER_TIME = 30,
        /// <summary>
        /// 贴纸条,支持区域规则
        /// </summary>
        ENUM_VCA_EVENT_STICK_UP = 31,
        /// <summary>
        /// 安装读卡器,支持区域规则
        /// </summary>
        ENUM_VCA_EVENT_INSTALL_SCANNER = 32,
        /// <summary>
        /// 人数变化事件
        /// </summary>
        ENUM_VCA_EVENT_PEOPLENUM_CHANGE = 35,
        /// <summary>
        /// 间距变化事件
        /// </summary>
        ENUM_VCA_EVENT_SPACING_CHANGE = 36,
        /// <summary>
        /// 组合规则事件
        /// </summary>
        ENUM_VCA_EVENT_COMBINED_RULE = 37,
        /// <summary>
        /// 一动不动事件
        /// </summary>
        ENUM_VCA_EVENT_SIT_QUIETLY = 38,
        /// <summary>
        /// 区域内人员聚集状态
        /// </summary>
        ENUM_VCA_EVENT_HIGH_DENSITY_STATUS = 39,
        /// <summary>
        /// 奔跑检测
        /// </summary>
        ENUM_VCA_EVENT_RUNNING = 40,
        /// <summary>
        /// 滞留检测
        /// </summary>
        ENUM_VCA_EVENT_RETENTION = 41,
        /// <summary>
        /// 板书
        /// </summary>
        ENUM_VCA_EVENT_BLACKBOARD_WRITE = 42,
        /// <summary>
        /// 玩手机检测
        /// </summary>
        ENUM_VCA_EVENT_PLAY_CELLPHONE = 44,
        /// <summary>
        /// 持续报警 
        /// </summary>
        ENUM_VCA_EVENT_DURATION = 45
    }

    /// <summary>
    /// 异常行为识别事件类型
    /// </summary>
    public enum VCA_EVENT_TYPE : uint
    {
        /// <summary>
        /// 穿越警戒面
        /// </summary>
        VCA_TRAVERSE_PLANE = 0x1,
        /// <summary>
        /// 目标进入区域,支持区域规则
        /// </summary>
        VCA_ENTER_AREA = 0x2,
        /// <summary>
        /// 目标离开区域,支持区域规则
        /// </summary>
        VCA_EXIT_AREA = 0x4,
        /// <summary>
        /// 周界入侵,支持区域规则
        /// </summary>
        VCA_INTRUSION = 0x8,
        /// <summary>
        /// 徘徊,支持区域规则
        /// </summary>
        VCA_LOITER = 0x10,
        /// <summary>
        /// 物品遗留拿取,支持区域规则
        /// </summary>
        VCA_LEFT_TAKE = 0x20,
        /// <summary>
        /// 停车,支持区域规则
        /// </summary>
        VCA_PARKING = 0x40,
        /// <summary>
        /// 快速移动,支持区域规则
        /// </summary>
        VCA_RUN = 0x80,
        /// <summary>
        /// 区域内人员聚集,支持区域规则
        /// </summary>
        VCA_HIGH_DENSITY = 0x100,
        /// <summary>
        /// 剧烈运动检测
        /// </summary>
        VCA_VIOLENT_MOTION = 0x200,
        /// <summary>
        /// 攀高检测
        /// </summary>
        VCA_REACH_HIGHT = 0x400,
        /// <summary>
        /// 起身检测
        /// </summary>
        VCA_GET_UP = 0x800,
        /// <summary>
        /// 物品遗留
        /// </summary>
        VCA_LEFT = 0x1000,
        /// <summary>
        /// 物品拿取
        /// </summary>
        VCA_TAKE = 0x2000,
        /// <summary>
        /// 高危目标岗位检测-离岗
        /// </summary>
        VCA_LEAVE_POSITION = 0x4000,
        /// <summary>
        /// 尾随
        /// </summary>
        VCA_TRAIL = 0x8000,
        /// <summary>
        /// 重点目标起身检测
        /// </summary>
        VCA_KEY_PERSON_GET_UP = 0x10000,
        /// <summary>
        /// 倒地检测
        /// </summary>
        VCA_FALL_DOWN = 0x80000,
        /// <summary>
        /// 声强突变检测
        /// </summary>
        VCA_AUDIO_ABNORMAL = 0x100000,
        /// <summary>
        /// 折线攀高
        /// </summary>
        VCA_ADV_REACH_HEIGHT = 0x200000,
        /// <summary>
        /// 目标区域滞留超时
        /// </summary>
        VCA_TOILET_TARRY = 0x400000,
        /// <summary>
        /// 放风场滞留
        /// </summary>
        VCA_YARD_TARRY = 0x800000,
        /// <summary>
        /// 折线警戒面
        /// </summary>
        VCA_ADV_TRAVERSE_PLANE = 0x1000000,
        /// <summary>
        /// 人靠近ATM(只在ATM_PANEL模式下支持)
        /// </summary>
        VCA_HUMAN_ENTER = 0x10000000,
        /// <summary>
        /// 操作超时(只在ATM_PANEL模式下支持)
        /// </summary>
        VCA_OVER_TIME = 0x20000000,
        /// <summary>
        /// 贴纸条,支持区域规则
        /// </summary>
        VCA_STICK_UP = 0x40000000,
        /// <summary>
        /// 安装读卡器,支持区域规则
        /// </summary>
        VCA_INSTALL_SCANNER = 0x80000000
    }

    /// <summary>
    /// 穿越方向
    /// </summary>
    public enum VCA_CROSS_DIRECTION : uint
    {
        /// <summary>
        /// 双向 
        /// </summary>
        VCA_BOTH_DIRECTION = 0,
        /// <summary>
        /// 由左至右 
        /// </summary>
        VCA_LEFT_GO_RIGHT = 1,
        /// <summary>
        /// 由右至左
        /// </summary>
        VCA_RIGHT_GO_LEFT = 2
    }
    #endregion
}
